GM workers approve new contract