Update documentation.
Remove the memory api
Add a printf for applications.
Don't align all the sections, just the user-code and text.
Printf in memory for when free fails.
Fix memory free problem in hashmap.

Also tidy up list & queue.
Semaphore should always relase the owning thread.
Set the Process Object ID *before* creating the first thread.

Otherwise the thread will reference the wrong process object which will
screw it up when we come to clean up memory at the end of the process.
Fix the process exit name

Only found it on a clean.
Free the stack of the thread properly.
Free pipes when the process dies.