Added OpenCL and GPU_PTX to Herd. This commit is just a checkpoint;
that is, Herd now builds happily but I haven't tried out the
functionality yet. Summary of changes:

- Added PTX barriers to list of all barriers

- Added Location_shared to list of location kinds

- Added scope type to AST

- Added -showpoloc flag, to show po edges between actions on
  the same location

- Added -evince flag, to send graphical output to evince rather
  than gv

- Added literal and liberal interpretations of the HRF-direct models

-
Merge branch 'master' of https://github.com/herd/herdtools
Finished adding OpenCL and GPU_PTX to Herd. Herd and the other tools
now all build happily, and Herd seems to behave correctly. Summary of
changes:

- I've had to copy several files from the lib directory into the herd
  directory, which is a shame from the PoV of code duplication. The
  reason is: adding GPU memory scopes requires modifying the splitter
  and various other things in lib, but this change breaks other tools
  like litmus that refer to the same lib directory. The duplicated
  files are: genParser.ml[i], miscParser.ml[i], simpleDumper.ml,
  splitter.ml{i/l}, stateLexer.ml[l], stateParser.ml, symbReg.ml[i],
  and testHash.mli. With a bit more work, it will be possible to move
  at least some of these files back to the lib directory, to reduce
  the amount of duplication.

- The opencl.cat file now almost works. I renamed various variables
  in it. The only feature that is currently missing is the ability to
  refer to "those actions which access global memory" and "those
  actions which access local memory".

- I renamed a variable in ptx.cat, and I believe that that model
  also now works.

- I reverted the changes I made to the lib directory in a previous
  commit.