Merge pull request #98 from bgamari/fixes

Gcode: Again ensure no allocations occur
Robot: static Pins
PauseButton: static Pins
Extruder: static Pins
TemperatureControl: static Pins
Endstops: static Pins
Stepper: remove redundant Pin pointers
Pwm: use underlying pin; Switch: static Pwm
ConfigValue: remove redundant as_pin and as_pwm methods
Merge branch 'feature/static-Pins' into edge
ConfigValue: use strtol/strtod instead of atoi/atof since they tell us directly if the string was a valid number, we don't have to do our own string parsing to work it out
ConfigValue: also accept 'y'/'yes' as a boolean
Pin: use strtol to parse pindef strings in a simpler and more efficient fashion
Switch back to ugly size output.

This works on Windows and doesn't assume *nix terminal with Perl installed.
Merge remote-tracking branch 'origin/edge' into edge
I giveth 2k back to the heap.

With commit d79d4eff87ffb5c88f19a32bf23d26ba0e52225a I initialized
_sbrk()'s heap pointer to the wrong linker symbol which ended up
taking away 2k from the heap.

Also removed redundant arm-none-eabi-size call in makefile.
GcodeDisplay: Use iterator instead of indexing

This avoids allocations due to _M_leak since possible_command is
mutable.
Gcode: Make command const

This also kills allocations from indexing
SimpleShell: Reserve buffer before appending
Player: Pop Gcode before deleting