Avatar simulate optimisation

Don't recompute the transform and the rotation if the local and parent transform didn't change.
extractRotation being what takes most of the time in otherAvatars/simulate, avoid calling it when it is not necessary.
How do we make sure these RotationExtractor runnables aren't piling up in the QThreadPool waiting to be run. If we have 200 avatars * 20 joints * 60 fps... won't we get a lot of runnables sitting in the queue? We should maybe make sure only one rotation extractor is pending per joint at a time.