make tile bouncing not derpy
Fix warnings.
Replace the GUI function pointer & void * callbacks with boost::function.