Made Ramps singleton, new CartesianController ...

When I wanted to break off the X,Y calibration into a specially defined CartesianController, in preparation for some future changes, I hit some problems. When I tried printer.testMotorX (which control remained in the Printer.cpp loop) and later tried the printer.calibrateX directive, the motor speeds got completely messed up! This was due to two different PoluluStepper instances fighting for control over the same pins. So, I took a chance, and decided to change Ramps.cpp to be a singleton, and changed many references from _rampsInstance to use the Ramps::instance() method.

It worked beautifully. The hex output was reduced to 9,082 bytes, and tests still pass. I did some happy edits to remove includes where possible, did some standardization of having each serial control send a "ready\n" when ready for the next command.
2012-12-16 Many many changes. See commit log and readme