Tidy test JSON files and use a custom matcher for JSON tests

Did some tidying of the test JSON resources:
* Prettify JSON resources to make them consistent.
* Move test JSON resources into a more structured layout.
* Move test JSON resources out of the main package namespace - was conflicting with DSL keywords when splitting into sub-packages.
* Clean up JSON test comparisons by creating a custom matcher.
* Tidy dependencies in `build.sbt`.

Hopefully this should make the test resources a little more manageable in the future.