Initial implementation.

FIXMEs need sorting and docs need adding.
Fixed the infinite looping.
Added docs.
Added static asserts.
Fixed the travis ci build.
Update README.md

Added scratchpad docs.
Update README.md
Merge pull request #33 from HarveyHunt/feature/scratchpad

Feature/scratchpad