Merge pin_interrupts

The pin_interrupts branch has been fully tested and has shown to be functional for gpio, encoders, pwm, servos, and motors. It was originally a redesign of the gpio module to support pin specific interrupts but now includes a (in my opinion) simpler design of module headers and pin passing.

The branch presents a standard for creating module headers and defines the `tPin` type for passing pins as arguments. It has been implemented in several modules showcasing its usage.

The merge will also add the following features to RASWare
1. Pin specific interrupts
2. Pin setter and getter functions
3. Timer independent pwm generators
4. Phase manipulation in pwm generators