Major physics refactoring

Just dumping the commit messages, as it should explain the pull request.

In this commit there should be no significant game play or code behaviour changes.

Intention of this refactoring:
Allow for multiple, different physics implementations to exist and be used.

General method:
Create a layer of interfaces between the physics classes and the Terasology code.

Detailed changes:
The new interface for the physics can be accessed from the PhysicsEngine interface.
This interface returns the CharacterCollider, RigidBody and SweepCallback interfaces.

The new physics interface is linked to the event system by the PhysicsSystem class.
The updating of the physics has also be relocated to the PhysicsSystem class.

Since the BulletCharacterMover class was very physics dependent, it has been refactored and renamed to KinematicCharacterMover. This name describes it behaviour better and the refactoring done by this commit make the class independent of the physics implementation.
To allow this independence, some of the low level character movement calculations have been moved to the CharacterCollider and SweepCallback interfaces.

All classes using the old BulletPhysics class have been refactored to use the PhysicsEngine interface.

Previously a TODO existed for merging the old PhysicsSystem and BulletPhysics classes. Instead the PhysicsSystem is now handling all events, while the BulletPhysics class is made into an implementation of the PhysicsEngine class.

Besides the major refactoring, documentation has been added in various places and various minor TODO's have been implemented.