engine: allow stack_user_project users to retrieve stack

The current DB scoping (and service.py check) enforces retrieval of
stacks only when they match the request context project/tenant, but
with stack_user_project_id we must make an exception, since these
users will require access to the stack for a subset of operations,
which ones will be enforced via policy.json (not the engine)

Change-Id: I82bee14ae96e30653702b4bdb104a2b74cc20cd4
blueprint: instance-users
migrate StackUser base class to stack domain users

Migrates the user/credential interfaces to stack domain users,
so the user is created in the instance-user domain not the
domain of the user creating the stack.

Partial-Bug: #1089261
blueprint: instance-users
Change-Id: If4c57144a32050a8d0b145444a84896cce53908b
Merge "engine: allow stack_user_project users to retrieve stack"
Merge "migrate StackUser base class to stack domain users"