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
Rename gcc4mbed.c to gcc4mbed.cpp

This code has always been compiled as C++ in the past anyway because of how the
mbed online compiler did things originally.  Now I want to actually use C++
code in this file so about time to make it an actual C++ file to reduce
confusion.
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
Merge branch 'edge' into track_allocs
Add heap tagging.

Now keep track of the caller who requested each dynamic heap
allocation.  This adds 4 extra bytes to each allocation to store the
return address of the caller at the end of the allocation.

To enable:
set HEAP_TAGS=1 in the main Smoothie makefile.

To dump heap in GDB:
I have added a .gdbinit file to the root of the Smoothie project.  If
you load this into GDB (will be done for you if you start GDB in this
directory) then you will get a heapwalk command.  Issuing the
'heapwalk' command in GDB will dump all of the current chunks in the
heap and display which line the allocation was made from.  You can
take multiple dumps as you run the code and diff them to see if there
are leaks and if so where they are coming from.

Sample Dump:
Allocation: 8  Address: 0x100020E8  Size:228  Line 73 of "src/main.cpp" starts at address 0x5a4 <main()+80> and ends at 0x5b0 <main()+92>.
Allocation: 9  Address: 0x100021D0  Size:44  Line 35 of "src/libs/Kernel.cpp" starts at address 0x12b8 <Kernel::Kernel()+144> and ends at 0x12c4 <Kernel::Kernel()+156>.

Errors:
If you get the following error output when you run heapdump then you
haven't enabled the HEAP_TAGS makefile variable to build in the support
for this feature:
  (gdb) heapwalk
  No symbol "__smoothieHeapBase" in current context.
Ignore gdb.txt log files.
Ben's configuration
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