Remove Identity and Assignment controller interdependancies

The DomainV3 controller explicitly instantiated the UserV3, GroupV3
and ProjectV3 controllers to call some delete methods. This makes it
very difficult to isolate the controllers from each other and
incorrectly implemented some logic that should exist in the
credential_api.

The code for deleting credentials by project and by user is now
implemented on the credential_api. This allows the controllers
to directly ask the credential_api to perform the deletes (and
in the case of the SQL backend, perform a more efficient delete
process).

The DomainV3 controller properly uses the identity_api to cleanup
users and groups when deletion occurs. Likewise, DomainV3 controller
now properly calls the assignment_api to perform project deletions.

These changes have been done to aid in clarifying explicit uses of
the per-domain-identity backend logic.

bp: assignment-controller-first-class
related-bug: #1218094
Change-Id: Ie8ed8bce556fe2f41cc7db61f04eefaf14f836f1
Move Assignment Controllers and Routers to be First Class

The assignment and identity controllers and routers have been intermixed
since they were the same subsystem. The split of Identity and Assignment
at the manager level has completed.

This change continues the process and makes the Assignment controllers
and router definitions part of the assignment subsystem instead of part
of Identity. In part, this is also a continuation of clarifying where domain
lookups (for per-domain-identity backend logic) occurs.

Identity maintains a simple subclass-proxy of each Controller that was
moved to maintain compatibility for clean deprecation until Icehouse
has been released and development opens up for J.

bp: assignment-controller-first-class
bp: deprecated-as-of-icehouse
related-bug: #1218094
Change-Id: If9a206692704005284e619679e1b6fe8b08bf8c9
Merge "Remove Identity and Assignment controller interdependancies"
Merge "Move Assignment Controllers and Routers to be First Class"