Moved nmu/types.h to os/types.h

The types represented here are OS relative, not NMU. The OS defines all the
types in the system. I also added *_INV for specifying invalid identifiers.
There is an accompanying unit test for the logic.
First draft of the operating system's graph.

The graph nodes have been built and unit tested, however not used in a real
system so the interface is likely to change. The Graph class is still
unimplemented to the types of graph queries is still undetermined.