Changed interrupt to side for readability
Templated the class definition of TwoWheelMotorController
Made MotorController an interface rather than a base class. May remove later
Revert "Removed interface for PIDMotorControl. Going to use templates instead"

This reverts commit d031c5749fb2dec799bf29bba9a7a7df90cbeb38.
Revert "Templated the class definition of TwoWheelMotorController"

This reverts commit 57a59d4a117b264330460b3dee0d1d6617ffd2b1.
Tidying up to use pointer polymorphism instead of templates
Defined a mock PID Motor