Improve absolute/relative pathing issues.

This commit fixes a few issues where absolute paths were being used when they shouldn't have been which would then cause things like deserialization to break.
Have the scene editor serialize some metadata for itself.

This commit writes the camera data to the file.
Add support for switching between local and global space for transformations in the scene editor.
Improve the way short cuts are handled int the scene editor.

What this does is passes shortcuts when the mouse is over the viewport and the focused element does not have editable text.
Fix a bug where the scene editor GUI was not being updated after deserializing.
Add support for duplicating scene nodes in the scene editor.

This uses CTRL+D for the shortcut. Duplicates in-place and selects the new nodes. Does not do any parent/child linking yet. Left as a TODO.
Fix a bad bug where the angular factor of a physics object was being set when instead it should have been the angular velocity.
Fix an error where OnValueChanged was being called by the vector3 input control when it isn't needed
Fix a static to dynamic and dynamic to static transition bug for dynamics components.
Fix serialization and deserialization errors in DynamicsComponent.

The main issue here was incorrect scaling of collision shapes. There was also an error with the capsule serialization where one of the properties was missing.