G4 Interface Panel UI Improvements, BlinkM RGB Mood Light and Buzzer support

Here are some G4 Interface Panel improvements to make it more usable and standalone.  These changes merge all the recent UI changes by revarbat, RonGarrison and Eried, removing duplication of work between the 3 pull requests.  I've also added some additional features / improvements where needed.

<UL>
<LI> b251e6d Added Version menu item to show the motherboard and extruder firmware versions.
<LI> 3e79289 Added CONT to SHORT/LONG in JogMode whilst a key is held down.  This mirrors Continuous Mode in ReplicatorG and saves from having to repeatedly hit a button to move around.
<LI>c5e0603 and 9da86f0 Adds Elapsed Time, % Complete and Estimated TimeLeft to builds from SD Card.
<BR>
 These changes are improvements to commit 88d02da and  de120a2 by revarbat, and are created from that work. This    commit is meant as a replacement.  Credit for the original code goes to revarbat.
<BR>
Note this is estimated time left based on the size of the .s3g and the progress through it.  The estimate gets more accurate as the print progresses.  Large rafts in particular will effect accuracy more at the beginning causing over estimation initially.  Values are generally fairly accurate by 30% completion in this situation.
<BR>
Additions made to revarbat's commit are:
<BR>
<OL>
<LI>Bug fix, elapsed time now stops increasing when the print finishes.
<LI>Bug fix, firmware rrmbv12 now compiles
<LI>Added Estimated Time Left which gets calculated after 1% of the build has completed.
<LI>Elapsed Time, % Complete and Estimated TimeLeft set on a timed rotate
</OL>
</LI>
<LI>dea413c Changes to commit 8ac6524 by revarbat.  This commit is meant as a replacement.  Credit for the original code goes to revarbat:
<OL>
<LI>Changed name from "Heaters" to "Preheat" to mirror Control Panel in Replicator G</LI>
<LI>Removed  "Build % Complete" changes as they are covered by other patches</LI>
<LI>Merged queryExtruderParameter and setExtruder16Bit Parameter into extruderCommand with a cmdType parameter</LI>
</OL>
</LI>
<LI> 2531e30 Changes to commit 881d776 by RonGarrison.  This commit is meant as a replacement.  Credit for the original code goes to RonGarrison.
<OL>
<LI>Used Extruder Controller changes only</LI>
<LI>Change enum time_t to enum extruderSeconds to avoid confusion with time.h</LI>
<LI>Removed changeTemp as it's covered by revarbat</LI>
<LI>Improved UI and Code optimization</LI>
<LI>Added stop button</LI>
<LI>Allow time extruded to change midway</LI>
<LI>Corrected foward / back direction</LI>
<LI>Added temperature safety check before extruding</LI>
<LI>Added RPM Extruder Speed (also remembered, value stored in eeprom)</LI>
<LI>Extrude duration is now remembered in eeprom</LI>
<LI>Word "Mode" dropped from Menu for consistency</LI>
<LI>Added more extrude duration options</LI>
</OL>
</LI>
<LI> b79196b Changed static PROGMEM to const static PROGMEM so firmware will compile on newer avr-gcc</LI>
<LI> f788d79 Changes to commit 97db22a by RonGarrison (ESTOP support for Gen 4 Motherboard).  This commit is meant as a replacement.  Credit for the original code goes to RonGarrison.  Fixed problem with it not compiling for target rrmbv12</LI>
<LI> aef0b13 Added BlinkM Mood Light Support (V2.4 Motherboard) for Gen 4 Interface(optional) and ReplicatorG.  Uses Software I2C over pins A8/A9.  Also see:  https://github.com/makerbot/ReplicatorG/pull/249 (also requires 2574d0e and 2abd144) and thing 15347</LI>
<LI>e9ea3d2 Added "Home Axis" menu to Gen 4 interface to manually home x, y or z</LI>
<LI>47ebca6 Bug fix: Steppers no longer hold when leaving Jog or Extrude Menu</LI>
<LI>6d966ec Added Steppers menu to disable/enable steppers</LI>
<LI>2a3d97e Added Test End Stops menu item to verify X/Y/Z endstops are working</LI>
<LI>8606f47 Added Page Up / Page Down support with the Z+ / Z- keys.  This change is a slight alteration to commit 9bd5fa5 by Eried.  Menu.cc is not located in boards/mb24, this change reflects that and puts it back in shared.  Credit for the original code goes to Eried.</LI>
<LI>ce3c870 Long filenames <=31 chars now scroll in the build menu</LI>
<LI>98eb106 Bug fix: Volume names no longer show in the Build Menu when SD Card has been reformatted on a mac</LI>
<LI>a4dd32d Deleting .UART.cc.swp (old vi tmp file left by someone)</LI>
<LI>2574d0e Fixed timing of mood light state recognition when Bot Status chosen</LI>
<LI>abb44e7 Added Z Position to build menu.  Hitting OK Button stops rotation</LI>
<LI>7a65b65 Added "Pause Build" during build from SD (includes jog/extrude during pause)</LI>
<LI>4c08c0d Added "View" selection to the Jog Mode Menu.  Buttons can be arranged in model view or user view</LI>
<LI>2abd144 Fixed bug causing print to start when toolhead reached temp but before HBP reached temp</LI>
<LI>e70a36f Added "Auto Pause at Predetermined Z Position" feature</LI>
<LI>e789b6a Made the cancel menu in Build From SD more user friendly</LI>
<LI>e56df8e Added "Advance ABP" menu item</LI>
<LI>58ac210 Added "Calibration" and "Home Offsets" menu item</LI>
<LI>60f102f Workaround for hardware bug when USB is connected and power is turned on, and junk is displayed on LCD Screen. (also requires minor hardware patch and commit 60f102f).  See thing 16181</LI>
<LI>5fa302d Fixed #ifdef on commit: 60f102f</LI>
<LI>0431835 Adds buzzer support for Motherboard V2.4.  Also see: https://github.com/makerbot/ReplicatorG/pull/249 and thing 16170</LI>
<LI>dc7fd68 Added extruder fan menu</LI>
<LI>5ef28af Added filament retraction to Pause and Pause@ZPos</LI>
<LI>b99c444 Fixed packet timeout issue on build from computer</LI>
<LI>cd608dd Added "Axis Steps:mm" menu to support machines other than ThingOMatics</LI>
</UL>