M600 Change Filament command improvements

This change splits the M600 Change Filament command into multiple
primitives to allow its use on machines without LCDs or when being
driven from a host. The split also allows greater flexibility in what is
done when the extruders are parked - for instance to change extruder 
temperature when you are changing filament type.

I refactored the command to reduce its RAM usage by using the existing
destination structure instead of defining a new target and removing some other 
unnecessary static variables. I set the default homing E axis rate to be the 
default rate used in the ULTIPANEL code (20*60).

The function of the LCD "Change Filament" Menu option should be unaffected.

Bug-fixes:
- the enqueuecommand() previously didn't handle multi-line commands and
so LCD commands like "Cool Down" in the LCD Prepare Menu ("M104 S0\nM140
S0")wouldn't have worked properly. [And I also obviously need it for the
Change Filament command.]
- ultralcd.cpp didn't compile without ULTIPANEL defined.
- noticed an error in pins.h
- trailing comment would cause following line to be ignored.

I have tested the commands work as expected.