Switch backend/frontend/public to use Puma for their devservers.

Hopefully this will get rid of the transient failures we see with
Selenium tests.
Patch up migration tests for my JSONModel.validate signature change
Move the reports tests into the integration test suite.

The unit test environment sets its hostname to example.org because
rack/test doesn't hit it anyway.  That causes problems for the reports
controller, which uses the request hostname to tell ITextRenderer what
base URL to use.  As a result, the unit tests were actually sending
requests out example.org.