Added PID parameter dynamic reconfigure code

Added code to allow dynamically setting PID parameters for tuning
the PID controller, using rqt_configure.
Note: for some reason this does not compile automatically,
need to go into the cfg folder and run "python PID.cfg" manually
before running rosmake.
Various feature additions

- Watchdog timer
- Motorfault detection
- Motor coasting to stop when auto stop interval exceeded, rather than hard stop
- Debug routines - free ram check + logic analyzer debug pins
Replaced existing PID by ideal position and velocity PID form

- Replaced the original PID controller implementation by a choice between
an ideal position or velocity implementation.
- Also renamed attribute fields to start with lower case letter.
- Introduced setPIDParam function, to recalculate PID Kx parameters based on
given PID rate; this allows specifying the Kx parameters in seconds,
and allows changing the PID rate without impacting the Kx parameters.
- Also improved MIN_PWM usage, to immediately get the PID controllers in the wo
rking motor zone - now just using MIN_PWM as additional constant, rather than f
ully rescaling its output between MIN_PWM and MAX_PWM
Added support for TinyQED wheel encoders

See https://github.com/KristofRobot/TQED for the TQED code to be used with this.
Added Collision Avoidance Mode

This mode can be used without ROS, to just let the robot wander around without bumping into anything.
It shares the wheel encoder and PID controller code,
and as such can be used to test out the robustness of that code over longer time periods,
without requiring any ROS node.

It requires additional 3 front sonars for obstacle detection.
It also requires the NewPing library, with a modification to return MAX DISTANCE when no echo.