Improved homing and configuration for Marlin

min_pos,max_pos and home_pos can be stored in eeprom
m206 is modified to set min/max/home position
limit handling outside stepper.c is changed (read_endstop function)
Homing is rewritten
- endstops are checked during homing, unexpected behavior is reported
- machine position is kept during homing
- after homing, difference from expected home position is reported
Few cosmetic changes to code
SdFatUtil::FreeRam modified to work under avrstudio

Could you review this pull request? I can fix it if there is a problem.
This patch is tested on Marlin90, but other configurations may have problems.
I did try to clean this, but few line endings did slip through