Improvements and extension for Arduino Timer Library

 o Added a range check to Timer::stop() to avoid memory corruption.
 o Added constants to <Timer.h>:
    - NO_TIMER_AVAILABLE: Signals that while an event was to be queued, no free timer could be found.
    - TIMER_NOT_AN_EVENT: Can be used to flag a variable that *might* contain a timer ID as *not* containing a timer ID
 o Replaced a bunch of magic numbers in <Timer.cpp> by the above constants
 o Added several comments
 o Added Timer::pulseImmediate(). pulseImmediate sets the pin to the specified value for the given duration. After the duration, the pin is set to !value.