Adding in timer

This brings a Timer class into the mix.  It supports the initialization of a Timer and the ability to check if it's done.

Testing using Timecop (which is AWESOME)
completed a functional timer and supporting tests

after writing some tests i realized there's no reason the timer should actually depend on Time.

a duration and interval_duration are used to calculate iterations of a certain time span.  this allows for better testing via injection and should play well with a future pause feature.