UPDATE:
 - moved singleton preparatory move out of generate_cycles(), in
symmetry with G98 processing. Looks much saner and cleaner now.
 - proper R processing inside the canned cycle when in relative mode.
 - removed do_WCS_move_math() as it's no longer used, yey for successful
deprecations!
 - fixed a bug in move_math(), was feeding the wrong copy to
current_or_zero_math()
 - separated cycle coordinate saving and pre-processing to only happen
when we're in cycle mode
 - separated updating #5001-5003 to only happen if the machine position
at the end of the current block is actually known
UPDATE:
 - added first tentative version of the "correct" output for canned
cycles test
 - made end_of_spliced_input() trigger when the last usable character is
read, just like feof() triggers when the last character in the file is
read
 - deleted pR and pT from TGCodeState as they're no longer used
 - removed some useless code in update_gcode_state()
 - even saner implementation of R/Z handling for canned cycles
 - even saner implementation of G98