Feature/h2 data storage

Replaced the trace data persistence with a new generic data layer, with a Slick/H2 implementation. This included some other changes as well:

* New generic data layer.
* H2/Slick specific implementation of data layer.
* Use of Jackson for streaming JSON generation. This includes treenode data as well as assembling export files on the fly.
* Periodic flushing of trace data to disk. This was implemented before, but is done slightly differently now, due to slightly different requirements.
* Trace deletion is implemented slightly differently now.