Redo Functional Tests at the Controller level

(Incomplete Feature, To be Fixed , Priority: Critical, Test Status: No automated tests yet , Reported By Justin du Coeur, )
Summary: Currently, the Functional tests are complete, running the entire, real system at the browser level. Which is great, but they are very slow and hard to maintain. We need something faster.
The idea here is inspired by the test harness I'm building from Artima. Instead of operating at the browser level, it is more unit-testy, operating on top of the raw controllers. The result is that it works orders of magnitude faster, and far easier to code.
We should do the same for Querki's functional tests. We should leave the full, browser-based set as a sanity-check, but we can't run that constantly, so we should add faster, more complete and more granular mid-level tests that we do run frequently.
To get there, we need to:
  • Build a harness on top of ClientController.
  • Put in an H2-based in-memory database, running in MySQL emulation mode.
  • Turn on evolutions in testing, so that the in-memory DB evolves up.
  • In testing, replace the real Cassandra implementation of Akka Persistence with an in-memory implementation.
  • Gradually build out the infrastructure to send the Autowire calls and receive their responses.
  • Build out more or less everything being tested currently in the Functional Tests. (Give up on my half-assed State approach, and compose them more conventionally.)
  • Start fleshing in features that are completely untested now, such as Apps.