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
Merge remote-tracking branch 'upstream/Marlin_v1' into Marlin_v1