Improve the way component IDs are added to the scripting environment.

This change makes things more secure if we ever need to change the name ID of a component.
A tiny change to the default renderer.
Add the beginnings of DynamicsComponent to the scripting environment.
Add the ability to set the collision filter of a dynamics component in the scripting environment.
Add the ability to set the linear and angular velocity of a dynamics component in the scripting environment.
Add ability to set the linear and angular factors of a dynamics component via the scripting environment.
Add the ability to set the gravity of a dynamics component in the scripting environment.
Add the ability to apply forces and impulses to a dynamics component via the scripting interface.
Add the ability to control activation and navigation mesh generation of a dynamics component via the scripting interface.
Add Serializer/Deserializer specializations for CameraComponent.
Add Component::Serialize() and Component::Deserialize() virtual methods and removed the horrible design I had previously.
Improve comment.
Add missing implementations of Component::Serialize() and Component::Deserialize(). Derp.
Silence a VC++ warning.
A big commit adding a bunch of untested serialization/deserialization functionality.

Nothing is used this yet, but the scene editor will start using it in the next commits. The scene editor will be acting as the main test bench.