* The space bubble around a player's avatar is now visualized. When another avatar enters a player's bubble, The bubble visualization will appear, a soft tone will play, and the "Bubble" HUD button will flash.
* The space bubble radius setting has been removed. Space bubble size now scales based on avatar scale.
* Space bubble collision detection is now more accurate and reliable.
* CTRL + N toggles the bubble.
* The "Bubble" HUD button has been moved to the proper location.
away.js calls MyAvatar.centerBody, however centerBody is only meaningful in HMD mode.
To guard against this, MyAvatar::centerBody is now a no-op if the application is not in HMD mode.
Previously hitting ' a.k.a. reset sensors, would teleport you to the last
position you were in before you switched into desktop mode, or the spawn location.
This fixes that behavior but not re-centering the avatar while in desktop mode.
The internal MyAvatar:_sensorToWorldMatrix was being updated properly, however
the MyAvatar::_sensorToWorldMatrixCache was not. To fix this I've introduced
a new "mode" to updateSensorToWorldMatrix that does not change the sensorToWorldMatrix at all,
but properly copies the value to the cache and also updates hand controller poses etc.
Basically, when using the third person camera in HMD mode. If the controllers are shown.
They should be shown in front of the users camera, not in front of the users avatar.
To accomplish this, two new faux joint indices are introduced.
CAMERA_RELATIVE_CONTROLLER_RIGHTHAND_INDEX and CAMERA_RELATIVE_CONTROLLER_LEFTHAND_INDEX.
These joint indices can be used for Overlay parenting. (But not for entity parenting because they are not transmitted over the network).
They can also be queried for by using the MyAvatar.getAbsoluteJointRotationInObjectFrame() call.
These new indices are now used by the controllerDisplay.js for the hand controller rendering.
They are also used by system/libraries/controllers.js as the origin for hand controller grabbing and interaction lasers.