Rework tests

- Removed default arg of User's home directory
- Moved test `100.json` file to `Library/Caches` directory
- Pulled test classes out of extensions
- Fixed 100.json test
- Fixed bugs in empty data handling for JSON

You probably want to pick a better `NSError` domain.