Added test to verify that users can verify their accounts with the verify_user email link in subdomains with client redirects.

[#82406674]
Fixed bug where creating an account without a client_id wouldn't
redirect correctly afterwards.

Clients with empty ID strings are handled correctly when generating
activation emails.

Creating accouts in subdomains with and without clients now works.

Changed activation email to show identity zone name (if there is one).

[Finishes #82406674, Fixes #83898390]
Refactored the validation of ClientDetails out of ClientAdminEndpoints
so it can be used by both IdentityZoneEndpoints and ClientAdminEndpoints
Appending identity_zone_id = ... to all filters in user queries. It was
being missed in retrieveAll().

https://www.pivotaltracker.com/story/show/83974104
[#83974104]
using a count(*) for getTotalUsers() if the dao supports it.

https://www.pivotaltracker.com/story/show/83974104
[#83974104]
Added ResourceMonitor to provide JMX monitoring enpoints with an
accurate count of object in persistence. Brought back tests for
JdbcQueryableClientDetailsService.
The bootstrapped identity client can be used two ways:
- via client_credentials, it can create identity zones and create
clients in any identity zone
- on behalf of a user, it can clients.(read|write|admin) if a user is
part of those groups.

If a user has scope zones.<zone_id>.admin, and the user's request has a
header of X-Identity-Zone-Id: <zone_id>, the request will target that
zone, and the user will have thier other scopes applied to the request.

If a user or client has zones.admin, they will be able to do the above
in any identity zone