Clean up notes handling
Add missing indexes to DB columns
Store and reuse results when calling .to_hash
Don't run backend startup hooks until ACLs have been bootstrapped
Add extra switched to apply_linked_records so we can skip deleting existing linked records if we know there won't be any
Optimise record creation for mixins used everywhere
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.
Merge pull request #377 from hudmol/puma

Puma