Add ActiveModel + related dependencies
Added RapidConnectService model

The existing validations are messy, adhoc and error-prone, so this is
the beginning of moving towards a driving this all through model
classes.
Fix some issues with the RapidConnectService model

* Need somewhere to store the identifier
* Added #to_s
Update /registration/save to use new model class

Tests extensively reworked to be more focused and tidy.
Add test that secret length is enforced
Added explicit check for attribute name validity

Relying on #send to fail opens up any method ending in '=' to the user.
More robust to force everything through a whitelist.
Move identifier generation into model class
Use model class for admin edits as well

Includes a refactory / tidy-up of the /administration test cases, to
prove this change hasn't broken things.
Fix intermittent failure in export API tests

Because Sinatra::Base.set(..) operates at the class level, the state was
not reset between test runs. For certain random seeds, this caused the
export API to be disabled prior to tests which required it to be
enabled. Since those tests didn't turn the flag back on, the tests
failed.
Add missing require for redis-rack
Use new model class everywhere, and DRY up a bit

It's a shame the line count is basically neutral, but at least the code
looks cleaner now.
Change 'if !condition' to 'unless' in a few places
Add test case for missed branch

In /administration/services/update, the case where a bad identifier had
been provided was not covered.
Update dependencies to fix deployment problem

ffi 1.9.4 was yanked from rubygems.org (assuming critical bug), so
update this to 1.9.5 and grab other updates from the last few days.
Ignore lines which can't be reached by tests
Fix style of error messages during registration
Remove unnecessary check for authenticated user

Authentication is forced for /registration/*, so it's safe to assume
that session[:subject] is not nil.
Add client-side validation for secret length
Gemfile: update ffi dependency to 1.9.5

Apparently, ffi 1.9.4 has disappeared:

    bundler
    Fetching gem metadata from https://rubygems.org/.........
    Could not find ffi-1.9.4 in any of the sources

So updating the dependency to 1.9.5
DevelopersDoc: rendered MD: prevent html_escaping

Mitigate the undesired impact of
687c672f2eaee4b1c5a43512df4b4fdb0c0e170f
and prevent HTML escaping on the field displaying the developers
documentation rendered from MarkDown into HTML.