synclines

Sorry for the size of this change.  No way to avoid it if you are going to store generated files in revision control.

'm4' can emit "sync lines".  These annotations allow the toolchain to point users to the actual source code, instead of the generated source code.