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
TemperatureControl: PID resets I to 0 if output exceeds bounds to reduce anti-windup effect
Secret Sauce for windows to activate the driver it comes installed with
added make dfu
TemperatureControl: Use median smoothing instead of mean
Merge bgamari/median into edge
Add __mriPlatform_EnteringDebuggerHook() and __mriPlatform_LeavingDebuggerHook() to MRI.

Upgrades to version 0.5 of MRI.

A debuggee can implement these "C" hook routines to be called when MRI enters and
leaves a debug exception to do cleanup such as turn off heaters so that they
don't remain on while sitting in the debugger.

NOTE: You can assume very little about the state of your program from these
      routines.  I recommend that they be written in low level C code.  It
      isn't even safe to assume that C++ global constructors have been run
      before these routines are called.

Example which just toggles a LED on while in debug exception:
extern "C" void __mriPlatform_EnteringDebuggerHook(void)
{
    LPC_GPIO1->FIODIR |= 1 << 18;
    LPC_GPIO1->FIOPIN |= 1 << 18;
}

extern "C" void __mriPlatform_LeavingDebuggerHook(void)
{
    LPC_GPIO1->FIODIR |= 1 << 18;
    LPC_GPIO1->FIOPIN &= ~(1 << 18);
}
use MRI hooks to disable heaters in debug mode
Kernel: Use vector<array<Module*>> instead of flat array

As it turns out ON_CONFIG_RELOAD filled the previous array size of 32
entries. Using vector<array<...>> here does incur a memory indirection,
which Arthur rightly points out will have a performance penalty in a hot
path. That being said, we'll use this for now. Eventually it might make
sense to move to array<array<...>> with a sufficiently large size.
Gcode: Use operator[] instead of string::at to avoid allocation

Not entire sure why string::at allocates, but we don't need bounds
checking regardless. Perhaps this is due to const-ness?
Gcode: Use const_cast to silence warning
Merge pull request #86 from bgamari/edge

Sundry fixes
added make dfu, need to merge with existing upload
removing a get_value from switch
removing get_value from laser too