Merge of GrammarParser branch into cam-py

Andrew,   I think the grammar parsing is working well enough to move into the main branch.  There are still infrastructure issues (such as what to do with the generated tool movement graphics) but I think we should handle them later.  Your cam-py branch and this GrammarParser branch are too far apart nowdays.
  Thanks 
  David Nicholls