Implementation of FW extruder change retract

FW retraction is extended onto swap retraction invoked by 'G10 S1'.
Bookkeeping of the retract state of all extruders allows for having one
extruder fw standard retracted while another extruder is swap retracted.
An LCD menu item for the swap retract and recover length was added.
Merge pull request #948 from Dim3nsioneer/Marlin_v1

Implementation of FW extruder change retract
Fix for a wrong checksum truncation for certain commands

Positioning of string terminator to truncate checksum from the commands
M23, M28, M30, M32, M928 and M117 was off by one, causing the last
letter of the actual command to be truncated instead of just the
checksum.

In case of the SD commands this caused checksummed commands targeting
existing files to fail since the last letter of the filename was
truncated.

In case of M117 this caused the last given letter not to be displayed.

This patch fixes the off-by-one error and sets the null terminator
on the exact position of the * starting the checksum instead of the
character before that.
Merge pull request #1017 from foosel/fix/checksum_truncation_bug

Fix for a wrong checksum truncation for certain commands
Settings as from the 3D Printer Czar FW download
Misc mods to get things working
Fix printer size and enable soft endstop
Increase Z steps/unit to 4100
Bump default acceleration to 1000
Invert X
Tweak stepper steps
Increase XY acceleration and decrease E acceleration
Reduce Y max to 180
Modify e-steps for herringbone gears, also use defines and equation for proper e-steps calc
Modify PID constants for extruder PWM, new values from autotune
Do full calculation of XY steps
Raise XY default/max acceleration to 2000
Modify pins so that rotary encoder on discount smart controller lcd turns the correct way
Bump hotend maxtemp to 240
Tweak build volume a bit