Implement proper output saturation for PID - partial fix for issue 32

Also switches the input filtering and derivative action to working on
the process value, not the error term. This should improve stability
when the setpoint jumps around.

This code is untested, because I currently don't have a machine set up
and am in class. Probably won't even compile...
Fix typo & remember to filter measurements before sending to PID controller
Formatting fixes
Merge pull request #34 from Wallacoloo/pid-fix

Pid fix
Moved src/drivers/machines -> src/machines
Merge pull request #35 from Wallacoloo/devel

Moved src/drivers/machines -> src/machines
Update path changes
Fixed #33 (Move Event -> OutputEvent translation into the State)
Removed outdated 'canDoPwm' function.
Machines are no longer in the drv namespace
Machines are now placed in a folder hierachy based on the platform and must use qualified path in make (eg make rpi/KosselPi)
now make MACHINE=rpi/KosselPi' are interchangeable
Can now detect rpi targeting from MACHINE name, not dirty uname hack
Removed dead code
Added experimental support for using DMA with only pins 0-31 (more efficient)
Fix not using rpi-specialized routines when compiling for rpi
Remove inclusion of typesettings.h (replace with smaller components)
Revised typo in DMA optimization
Merge pull request #36 from Wallacoloo/devel

Organizational improvements & DMA optimizations
Update for build system changes