Unified C parser between litmus and herd; both now use lib/CLexer and lib/CParser.
I had to introduce "deep" and "shallow" parsing, the former for herd and the latter for litmus. Deep parsing means that the contents of the functions are parsed; shallow means that they are just left as uninterpreted strings.
Moved old-style C tests out of the way.
Brought OpenCL module into line with the changes recently made to the C module in herd.
I managed to unify the "archs.ml" module across all the diy suite. That is, there is now just a single archs.ml file in the lib directory. I have used "polymorphic variants", following the lead set by litmus.
I also tweaked the ptx-up.cat file, to match the ptx.cat file more closely, and add a few details that were talked about in a recent meeting.