Temporarily disabling scopeTree and memoryMap.
Revert "Temporarily disabling scopeTree and memoryMap."

This reverts commit e533880f17778f9e2b9cef82200131d4b4b8a969.
Revert "Made process identifiers generic."

This reverts commit 646394fa1bf75754eb7098a5fba92286059d0fb9.
Revert "Revert "Temporarily disabling scopeTree and memoryMap.""

This reverts commit 6229ece4286890fe47be3c7576b0a72ab614dada.
Moved GenParser, MiscParser, SimpleDumper, Splitter, StateLexer,
StateParser, SymbReg, and TestHash modules back into /lib. All builds
happily now, but the ScopeTree and MemoryMap are still disabled.
Next step is re-enable those two features, while keeping the above
modules in /lib.
Minor
ScopeTree and MemorySpaceMap now working again.

Litmus tests for scoped models must now place the scopeTree
and memory space map *before* the final state condition, rather
than after it.

It was difficult to add the ScopeTree/MemorySpaceMap to the
litmus test parser, because the test parser is in /lib, and too many
changes to things in /lib would break the other tools in
the suite. What I've done is add the ScopeTree/MemorySpaceMap to the
*program* parser instead. That is, the ScopeTree/MemorySpaceMap are
now deemed to be part of the PTX/OpenCL program. This seems a
perfectly reasonable design choice.

The weakness of my current solution is that the ScopeTree/
MemorySpaceMap are static fields in the "ScopeTree" module. By default
these fields are set to "None", and when a PTX/OpenCL program is
parsed, a *side-effect* of the parsing is to set that field to the
appropriate ScopeTree/MemorySpaceMap. This use of mutable references
is not a very "nice" functional implementation I'm afraid, because
the type system doesn't provide as much protection as it could, and
because those references never get reset to "None". Nonetheless, it
all seems to work at the moment, so I think I'll leave it be for
the time being.