initial button implementation
changed on_m_code and off_m_code to strings to avoid needing to do an itoa
added M and \r\n to Button's on_m_code and off_m_code members
added comments to Button::button_tick()
Merge branch 'edge' into button
added ButtonPool to Main.cpp
initial 'break' command implementation to enter MRI
renamed the Player module to Conveyor
renamed all references to the Player module to Conveyor
moved play command into the new utils/Player module from SimpleShell, also added a configable on_boot.gcode and added SimpleShell as a member of kernel
added hook to call the new break function to SimpleShell's on_console_line_received
merged edge
add closedir to simleshell commands that open directories
move digipot instance to CurrentControl module
make CurrentControl delete itself if not enabled
make Laser Module delete itself if not loaded
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.
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.
Merge branch 'edge' into track_allocs

Conflicts:
	gcc4mbed/src/gcc4mbed.cpp
WRITE_BUFFER_DISABLE support in makefile.

Setting to WRITE_BUFFER_DISABLE to 1 will configure the MPU to disable
write buffering and eliminate imprecise bus faults.  Can make debugging
write faults easier.