Component uses virtual functions to listen to events, instead of functors
If you need functors, you can implement them yourself (like in Button), but most components won't need them.
DrawableImages now use reference counting for textures.
Adapted all other classes to work with that, now they no longer use a pointer to a DrawableImage, but a DrawableImage itself
MouseEntered and MouseExited events for Components now.
Components now listen to FocusGained, FocusLost, KeyPressed and KeyReleased events.
Background Image for menus