Clarified Pin Names

Added meta-data documentation to the Pin Names enumeration to ensure
that the pins get setup correctly in the future. I also clarified each
pin, which is redundant at this point, but in the future the enumerated
names will change names to match actual names.
Read me updated

The readme no includes how to properly setup these files with an
existing project.

I also refactored some code in the Pins.c/h files to use more magic
numbers and more generic variable names. No functionality changed.
Timer 1 Initialize - Complete

I have added everything needed to setup Timer 1. It accepts a clock
prescaler argument as well as a function pointer to be used by the
timers interrupt when it occurs.

It also checks the function pointer to see if it is or if it is a null
pointer.
Timer 2 Initialize - Complete

Similar to the first one
Timer 4 Initialize - Complete

Timer 4 does not exist on this chip, a fact that I was not aware of
until I was well into writing the functionality in. By default it will
just return a 0 indicating that the initialization failed.

I also did wrote the meta-documentation for timers 1, 2, and 3.
Null pointers are valid arguments

After some debate I decided to allow a null pointer to be sent which
allows a timer to be initialized which is not intended to have a
function called during the interrupt. Eg. when using it for timing (main
loop wheel spinning) or as part of another module (PWM).
Timer 3 Initialize: Part 1 - Complete

Setting the timer up as a regular timer is complete. The task of setting
it up as a gated timer is still left undone.
Timer 3 Initialize: Part 2 - Complete

The timer can be setup as a gated timer now.

I need to setup the timers to enable the associated interrupts now.
Enabled interrupts

Interrupts are now turned on if a valid function pointer (Not a null
pointer) is sent as an argument.
The function pointer is also not set if the pointer is a null pointer.
Created sentinels

These functions now immediately return 0 if they detect a problem, this
is done before  changing anything
Added PRx registers to initialization

They are set to their individual maximums, but nothing else. I want to
have them autoset, along with the pre/post scalers so I don't want to
waste effort on them.
Created a null function pointer definition for the timers
Merge pull request #1 from CraigComberbach/Timers

Timers
Timer1 Auto-magic time setup

Timer1 now determines the best way to setup its own prescaler and period
register.
Timer2 Auto-magic time setup

Timer 2 now determines the best way to setup its own prescalar,
postscalar and period registers.
Timer4 Auto-Magic time setup

Timer4 now determines the best way to setup its own prescaler,
postscaler, and period registers.
Timer3 Auto-Magic time setup

Timer3 now determines the best way to setup its own prescalar.
Merge pull request #2 from CraigComberbach/Timers

Timers
Added TODOs to GitHub Issues instead
Timer Trigger added

The timer can be Enabled/Disabled on the fly now.