Alternate UART support.  Refactoring for Viki and other displays/buttonarrays

ALT_UART changes can be found in Menu.cc/hh and UART.cc/hh as well as the localization files.

The Viki changes and abstractions:
- Changes to TWI.cc for improved I2C read operations
- Changes to motherboard.cc, #ifdefs in initializer list for Viki and I2C.  Changes to Motherboard.hh with ifdefs to initialize relevant objects based on build options.
- Changes to StepperAccel-- probably should be ignored.  Debug code was uncommented and got swept up in the push request
- Changes to Interface.cc to enable isConnected to return true for displays that don't use INTERFACE_DETECT pin.
- Changes to Main.cc for __cxa_pure_virtual in order to enable the use of abstract classes.
- LiquidCrystalSerial.cc/hh becomes base class with abstract methods for implementing IO routines in subclasses.
- StandardLiquidCrystal.cc/hh subclass implements standard shift register hardware routines for MBI hardware.
- ButtonArray.cc becomes abstract base class in /shared and "StandardButtonArray.cc/hh" becomes the subclass in boards/mighty_one and mighty_two for their specific flavors of display.  (NOTE: Mighty_one not tested, as I do not have a mighty_one)
- VIkiInterface.cc/hh -- dual inheritance subclass of both ButtonArray and LiquidCrystalDisplay for supporting the Viki interface from Panucatt
- AnalogButtonArray.cc/hh subclass for hardware of the kind: http://www.dx.com/p/256781  Configuration.hh update to set which analog pin for this option.
- LiquidCrystalSerial_I2C.cc/hh subclass to support I2C displays on 8-bit bus extenders.
- Changes to SConscript.mightyboard for various build options