First round of settings serialization.  Setup an API to load and save different settings to the avatar data file.
Initial serialized settings:
Gyro look
Mouse look
Transmitter drives
Voxel rendering
Voxel textures
Star rendering
Atmosphere rendering
Avatar rendering
Oculus rift mode
Render stats
Frame stats
Look at vectors
Logging
Frustum debugging
View frustum offset
Camera frustum
Setup various debug options.
Documentation for #19308.
Store settings in an ordered map to allow for runtime getting and setting of settings.  Read the setting file on startup, then write on shut down.
Check how many matches were found for the given data type we're checking for.  1 for bool and float, 3 for vec3.  Return false and assign default values if this isn't true.
add --local option to avatar-mixer
Coding standard cleanup based upon ZappoMan's suggestions.
Merge branch 'master' of https://github.com/worklist/hifi into 19308
Massive changes to orientations: use quaternions rather than Orientation
class.
Merge branch 'master' of https://github.com/worklist/hifi into reorient

Conflicts:
	interface/src/Avatar.cpp
Moved direction vectors to AvatarData, made them align with OpenGL view space
(to avoid the 180 degree rotations).
Moved gravity influence multiplier into constant, reduced.
Formatting.
More reformatting.
Offset camera fix, cleaner frustum transformation.
Merge commit '6d57324d0b9fce9d6a030123689bb499ed54c8ad' into 19308
Merge pull request #466 from ey6es/reorient

Avatar orientation conversion: use quaternions rather than Orientation class, generalize rotations so that avatars can be reoriented based on gravity.
Save/restore the pitch and roll as well as the yaw.
Added --local option to avatar-mixer for testing.  Only update velocity,
acceleration, angular velocity, etc., for local avatar.
Merge pull request #468 from ey6es/master

Fixes for reorientation: load/save pitch/roll, don't update orientation for remote avatars.