Allows multiple virtual timers to run of hardware timer

This File uses a custom struct to store information used to create a virtual timer.  The virtual timer has all the capabilities of a normal timer with the exception that multiple virtual timers can run off the same base hardware timer eg. T1.