JSON importer/exporter and unit tests

I have a whole lot of stuff to commit to CalChart, but it would be really hard to review if I committed it all at once, so I'm splitting it into pieces.
Here's the first piece: it's a JSON importer/exporter, along with some unit tests. This is required for the following features:
- Beats File Exporter
- CalChart Online Viewer Exporter
To get the unit tests to work, the unit_tests directory should be copied into the executable directory. When the unit_tests directory is not there, the json unit tests are ignored.