Thrash out the very basics for testing the publisher library

I've put in the scaffolding for writings tests for the publisher. This
was much more fiddly than I expected due to the fact that the JSON
reader returns a dict, which doesn't have a defined ordering (being a
hash-based data structure). This is desirable for testing the
publisher's flattening function, amongst other things.

To "fix" this I switched to using an OrderedDict, which "remembers" the
order in which elements were inserted. Now the ordering is defined by
insertion order, which should be consistent assuming the same JSON
document is read start to finish, with nothing undefined in-between.

This *shouldn't* cause any problems, but it *is* a change to the way
that flatten() builds its output.

In addition I've gone and stubbed the test functions for everything in
process.py, and the other file/s are yet to be looked at.