Introduce extension methods for QueryProcessor eager loading and sorting.

The eager loading and order by query parameters can now be chained in
query handlers. The IQueryEntities eager load method no longer needs to
take a params array of expressions (which affects the DbContext
implementation). Also added an enum to define order by directionality
(instead of using bool).
Fix bug with EagerLoad extension method.

It was throwing an exception when a query definition contained a null
EagerLoads property.
Add FindEstablishmentByEmail definition and handler for query processing.

This is be needed by the sign on controller to determine email
eligibility and sign on target.
Add remote validator to check sign on email address eligibility.

The action method no longer has a valid ModelState unless the email
matches an existing member establishment.
Use command handlers to update SAML metadata and send SAML autn request.

This solves the problem of who's responsibility it is to ensure SAML
metadata is up to date. The SendAuthnRequest command handler takes a
dependency on the UpdateSamlSignOnMetadata command handler, and ensures
the metadata XML is up to date before sending the authn request.
Remove EstablishmentSamlFactory and encapsulate SamlSignOn metadata URL
and EntityId updates into command.

There is no longer a SetSamlSignOn method on the Establishment entity,
or the need for a separate factory class. Seeders use the command instead.
Remove sign on service dependency on IManageConfigurations and create
query + handler for displaying SAML-integrated establishments.

Can now remove GetSamlIntegrated method from EstablishmentFacade, coming
closer to being able to remove it.

Also removed IManageConfiguration dependency from sign on controller
injection.
Reorganize Establishments folder in domain project.

There are now 3 subfolders for commands, entities, and queries.
Note that these 3 folders are also non-namespace-providers in ReSharper
DotSettings.file.
Remove IProvideSaml2Service dependency from SignOnController.

Receiving the Saml authn response is now encapsulated into a query that
can be executed by the query processor dependency.
Introduce command + handler for receiving saml2 response and sigining on
user, and soft-remove EstablishmentFacade class.

Also renamed queries that return a single element rather than a collection.
Query definitions and handlers that return enumerables still begin with
"Find". However defs & handlers that return a single element begin with
"Get".
Completely remove EstablishmentFacade class.
Create command & handler for updating establishment node hierarchy.

This removes the dependency on EstablishmentChanger, making it ready for
official removal.
Remove EstablishmentChanger and backing facts.

These files are no longer necessary, and domain facts won't build until
removed.
Implement SimpleInjector filter attribute provider.

Set up UnitOfWorkAttribute to use property injection instead of
service location pattern.
Refactor SAML Subject Name Identifier from scalar to collection property.

SAML SubjectNameId can change from time to time, log them all.
Also reorganized People domain folder into entity and query subfolders.
Refactor domain User.UserName property to User.Name.

When mapping, it can be confusing to map something like UserUserName.
The "User" in the property name was redundant, so it was removed.

Also created Entities and Queries subfolders in the domain identity folder.
Add new values to SamlAttributeFriendlyName enum.

This is necessary to be able to get additional attributes out of a SAML 2
authn response assertion set.
Add method to Saml2Response for getting multi-valued attributes out of
a SAML 2 authn response.

This is necessary to get multi-valued attributes such as
eduPersonScopedAffiliation.
Fix bug with RevisableEntityQueries.Exclude extension method.

Patch is necessary to prevent the method from throwing NullReferenceException
when the entityIds arg is null.
Remove dependency on UserFacade class.

The facade is no longer needed, and has been commented out.
Additional references in RolesController and its associated classes/tests
were also refactored to use IProcessQuery injection.