Lexer: allow whitespce between register and value
Evaluate, Types: introduce a new mechanism for interpreting G-code

Not complete yet.
Don't put Types in the mlpack; instead, include it in Evaluate
Evaluate: better diagnistics.. in one case
Evaluate.motion_of_commands: added a function to access the motion part of a command
Evaluate.evaluate_step: it's ok to have a motion command without values in axis
Evaluate: separated axis/position better from other registers
Evaluate: implement string_of_*

Also fixed RegNoAxisMap to use the proper type.
Typer: bring it back to the pack to avoid trouble with compiler libs..
Evaluate.string_of_gfloat: increased precision
Evaluate.evaluate_gcode: actually use the generated machine state..
Evaluate.word_list_of_step_result: when F changes, redo the G command. Is this required?