Start and stop timer

This PR moves the logic to start/stop the timer and have it updated on a given interval into the timer control itself, abstracting that part away from the end user. With this in mind all users will have to do is set the interval and direction and tell the timer to start, and they won't have to handle the logic to update the time and set up the timer to do it. It also provides a convenience init method that takes the major components of the timer as params, so creating a basic timer takes less lines of code.

Addition to the demo can be seen here: https://www.dropbox.com/s/fofuh7uvvcexxk8/Start%20Stop%20Demo.mov