Perform some code cleanup.

This occurred during the documentation blitz, and overlaps a little.

Highlights include:
- Reword IsHalted to IsStopped
- Use error exception subclasses instead of codes
- Re-organise includes as per include-what-you-use
Documentation blitz.

Many things have had their documentation extended, created, or
reworded.  Woop woop.
Merge pull request #8 from CaptainHayashi/documentation

Documentation