Scene now uses std::function rather than Command

Added std::hash specialisation to Font
Hero updated to use std::function for scene, and also use weak_ptr to
make sure is still valid (thus fixing a potential memory violation).
made template function to apply weak
made bind work for member function pointers.
Command is now a std::function
moved command to event
updated collision to use new Commands