Invoker is now an object that we attach to the sortbinding rather than
the HasInvoker.
we now create a binding in main, then pass it on to App.
Timer now has a weak ptr to its invoker, so it could clean itself up.
the idea is that an invoker holds a weak_ptr to a steppable. and
anything with an invoker can advance a steppable
app::add_sort has become too heavy because of the way timer and
invoker are initialized now.
App now adds already constructed Timers
Timer is now an Invoker that takes a weak_ptr to a steppable with a
request()rather than a bool callback.
should eventually be changed to composition
improved the hub and spoke-ish model of App by making it more clear
that its components have specific responsibilities, which App then
glues together.
moved timermanager to App to seperate the invoker from receiver so we
can eventually add interactivity
also fixed the using namespace std error from a while ago
reduced responsibilities of constructors
started using more pointers.
sessions through app rather than app itself.
mostly split view away from app (still hard coded)
haven't decoupled sorts from timers as their actuator yet
couldn't figure out how to handle sortstate, eventually put it into
bsort class. should be split into timeraction and steppable. and there
shouldn't be a random steppedbsort in App
now using App and SFML's loop, but haven't properly set up data vs
logic vs UI yet.
added setuptimers()
sortdata currently member var, should either make vec, or attach it to
a different object