Merge pull request #83 from bgamari/fixes

Some of these are small changes extracted from @triffid's std::string -> char* conversion which are worth on their own. Each patch is small, self-contained, and hopefully pretty non-controversial.
reduce Block queue to 24 entries to reduce memory usage
version change
Ringbuffer: size request is atomic
Block Queue: clean finished blocks before we pull them from the queue
Player: check that we don't inadvertently wrap the ring
Block: whitespace and formatting changes
utils: is_alpha, is_digit, is_numeric, is_alphanum, is_whitespace utility functions
Gcode: get_int method to shortcut string->float->int conversion
SlowTicker: implement G4 pause
Robot: remove unused variable
USB DFU: keep usb connected while we respond to reset request.

we also become a kernel module so we can receive the on idle event. This would be an ideal place to do shutdown tasks, eg save position somewhere
Extruder: make sure we have a block to release, avoid segfaults
utils: is_alpha, is_digit, is_numeric, is_alphanum, is_whitespace utility functions
Gcode: get_int method to shortcut string->float->int conversion
SlowTicker: implement G4 pause
Merge branch 'edge' into block_queue_shuffle
TemperatureControl: PID resets I to 0 if output exceeds bounds to reduce anti-windup effect
Merge branch 'edge' into block_queue_shuffle
Merge remote-tracking branch 'origin/block_queue_shuffle' into ben-edge