Cleanup and fix of a bug with G92 array access behind boundary
Use extruder from planner current block instead
of the global set by T command
Per extruder config, retract jerk, extruder offset
- per extruder config
  Major parameters like steps/mm, acceleration, etc. are now configurable
  for each extruder.
- retract jerk
  Added DEFAULT_E_JERK parameter for extruder retract moves to allow fine
  tuning (without it the intial speed varies and retract is not efficient
  in eliminationg blobs)
- extruder offset
  Added parameter for extruder offset that allows configuring how the
  priniting head should be repositioned when switching extruders.
  The T* command can now also accept the feedrate at which to reposition
  the head when switching extruders.
Notes:
  There were changes in LCD management code I did not test.
  In general, the commands and settings for extruder are applied only to the
  active extruder. For example, to change max feedrate for extruders 0 and
  1, one has to switch to the first extruder, set its rate, then switch to
  the second and set its rate. M503 shows multiple 'E' values starting
  with extruder 0 and so on.
  As of this commit the firmware can be used to print suport in different
  material by simply switching extruder in skeinforge support start/end
  script and adjusting the steps/mm, etc. to make the same gcode work for both
  main and support material extruders.
Removed missed debug printout
Modified T to make move only if F is specified.
Made some redame and config changes.
Made S option of the T command select initial E
position for the extruder. It can be either its own last position
or (if S option is specified) the last position of any other extruder.
The latter is useful when using for printing support, the former makes it
easier to print skeined independently parts of the object.
Fix retract move detection, reformat some output

Fixed issues:
- The retract was not detected when preceeded by
  a very short moves that were ignored and merged into the next
  (retract) move. That caused incorrect speed used for those
  retracts and steps skipped in complex small size objects.
- The output during temperature wait was too long causing
  Printrun's UI to misbehave.
Added PID control range feature and config changes

The PID_RANGE define can be used to set range (in degrees) within the
target temperature where the PID is active. Outside of the range the
simple heater on/off method is used.

Changed config to speed up getting to the target temperature, enabled
min/max temperature safety check for the second extruder
M109 and extruder offset runtime control

- rewrote M109 code to be less confusing;
- removed do not wait if lowering temperature configuration var
  (just use m104 if lowering);
- changed the wait logic to consider any temperature within
  the TEMP_HYSTERESIS range to be acceptible to stop waiting;
- added W parameter to allow changing the time it waits for
  temperature stabilization after reaching the target range;
- added A parameter that if set to non 0 value will make the
  command wait for all the extruders that have non-0 target temperature;
- added experimental L and H parameters (to M104 too) that allow to
  make the temperature lower or higher than the current target
  (will remove if temp control can't help with oozing from idle hotend);
- added m208 command that take parameters T,X,Y for configuring extruder
  offset (T - extruder number, X,Y offset from the imaginary printing
  point);
- made the extruder offset be a EEPROM storable/retrievable;
M105 to accept A1 for printing all temperatures

The temperatuires are printed like this "ok T0:27 T1:28 B:27".
Here the 0 is the active extruder (active elways printed first).
Added support for the Rambo reprap electronics board. Added Mcodes to set
motor current and microstepping pins.
first commit
Merge branch 'Marlin_v1' of https://github.com/Drakelive/Marlin
Decorative changes
commit
fix max endstop pins
Serial buffer handling fixes, bed temp control

- Cleaned up and removed a bunch of unnecessary and inefficient
code in the serial input processing;
- Made the error detection ignore the incorrect line numbers if
it saw an error and might be still looking at the bufered input that
the host side sent before it saw the error message;
- Added bed temperature window parameter and made the wait for bed
heater code ignore the request if the target temperature is not set.
Updated formatting in readme
More readme changes
primo commit