1. Turns out you need the deeper nesting in order for the tagging approach to work.  Otherwise, it seems objects don't get tags assigned in all cases.  Still seems excessively deep now, but I'm going to leave improvement for some other time.

2. Suppress '=' in another case of assignments, since we tag the assignment and so we know what it is.

3. Don't need copies of id references all over.  I'm not hanging actions on them anyway, so we can simply things for now by removing the extra _ID grammar objects and just using ID_REF directly.
Single rows were not getting tagged properly.  Fixed.
1. Added code for tracking variable assignments and function definitions.
2. Added some flags for debugging and printing.