Start integrating Box2D.
fix linux box2d compilation
add a movement system for smoother input
GraphicsSystem: Take window dimensions as parameter instead of using hard coded values.
System: notify_created and notify_destroyed are now virtual, notify_created also includes component data parameter.
EntityManager: Move structs ComponentData and Entity out of main class.
Component: Include ID of owning entity.
Transform: Remove unneeded constructor.
Graphics: Remove unused constructors and remove broken destructor.
KeyBoardInputComponent: Remove unused constructors.
Graphics: Add 'is_visible' flag.
Physics: Improve physics integration.

Rigid body creation now happens automatically when adding a PysicsBodyComponent to an entity.
Entities' graphical representation is now synchronized with physics (physics->graphics only, graphics->physics synchronization not implemented yet).
Add Texture class.
Graphics component: Replace SDL_Texture* member with shared_ptr<Texture>.
GraphicsSystem: Now uses the Transform components' rotation and scale when rendering.
Graphics component:  Remove width and height parameters.

They can be found in the Texture member now.
Transform: Remove old position members, add scale.
main: Lots of changes to initialization.

Split main() into a few more functions.
Make some extra physical entities.
main: Get dimensions from actual texture rather than relying on hard coded image size.
EntityManager::add_component: Return reference to the created component.