mvp workflow for managing user accounts
Merge branch 'master' into 40160673-administer-users
update selenium
cleaned up access control
fixed broken routing
Switched user handling to always use IDs as their unique identifier

  * Switch the backend CRUD operations for users to always use the ID
    instead of the username.  Dropped the special case from JSONModel
    that was needed to work around this.

  * Modified the frontend to refer to users by ID.  Required changes
    to the routes and a few templates to make this work.

  * On the backend endpoint, made the password field optional when
    updating a user record (to allow changing a user's name without
    resetting their password)
Last steps in removing the frontend's use of usernames when pulling back users:

  * Switch the backend login controller to send back the full user
    JSON (giving us access to their permissions and also their URI)

  * Add a new 'find_by_uri' helper to JSONModel::Client.  Handy for
    getting back an object if you have a URI instead of an ID.

  * Modified the frontend's login process to stash the current user's
    URI in the session.  Use this for pulling back their permissions
    later as required.
Fixed integration test
Merge pull request #183 from hudmol/40160673-administer-users

[Delivers 40160673] basic user administration features
Don't enforce identifier uniqueness constraints across repositories.
Merge pull request #187 from hudmol/identifier-uniqueness-fix

Don't enforce identifier uniqueness constraints across repositories.
fix test for date begin
WIP add subjects to the solr index and update the linker widget to use solr
Added an "exclude" option to the backend search controller.

Allows for excluding known results from search results list.
Added a stored field for the json blob of subjects and locations.
Make solr-enabled linker work with locations and subjects (temporarily disable 'browse' on for these instances -- until inline paginated searching is ready to go)
WIP: Added a new accession linker and make the resource form use it.

Supports:

  * Links created directly via the resource form

  * Links created implicitly when a resource record is spawned from an accession
Massage the agents frontend controller and linker implementation to interact with the solr enhancements to the linker widget
WIP update CMR and event linkers to work with the solr enabled linker widget
WIP Allow indexer to be poked from the selenium tests