Added timing manager core

This class is responsible for all timing code and synchronization. Now, to play
back, all consumers must be registered with a timing manager that handles
ticking