Add an object registry. Start work on pipes. Fix hashmaps.

* Registry is used to store a named reference to objcets that can be
used to reference things like pipes and semaphores from a different
process.

* Some (very) initial work on pipes - hence the registry.

* Hashmap changes to support indexes that aren't values (integers etc)
but instead arrays and pointers (char *, char[] etc).
Merge branch 'master' of https://github.com/sam-truscott/sos3.git