Refactor

This commit brings the codebase up to date with our current
coding style, including a current .jscsrc and .jshintrc. This
also switches to a prototypal method, rather than the revealing
module pattern. Some parts have been factored out into separate
files where appropriate.

The test suite is untouched and the refactored code passes all of
the existing tests.

This is the first stage in making some feature changes to schemata
as it makes the codebase easier to work with.
Attempt to fix Travis build failures
Drop 0.8 support
Merge pull request #21 from bengourley/refactor

Refactor