Replace stack_get_all_by_tenant with stack_get_all

Preparing the database for the unscoped list stacks, this removes
stack_get_all_by_tenant in favor of a single function that is tenant
aware.  This way, you can call stack_get_all(tenant_safe=False) and get
all stacks, regardless of the tenants.

tenant_safe defaults to True.

Implements: blueprint management-api (partial)
Change-Id: Ifdcfc44a3483a089ae803cfd044151262957674a
Alter stack_count_all_by_tenant to stack_count_all

Preparing the database for the unscoped list stacks, this removes
stack_count_all_by_tenant in favor of a single function that is tenant
aware.  This way, you can call stack_count_all(tenant_safe=False) and
count all stacks, regardless of the tenants.

tenant_safe defaults to True.

Implements: blueprint management-api (partial)
Change-Id: Ic44b884120290b6ceaf4936e015ef6661aaf6694
Unscoped List Stacks

This allows non tenant-scoped list of stacks for the management api
blueprint. A user allowed by the policy stacks:global_index will be
able to make a call to "/:tenant_id/stacks?global_tenant=true" and get
all stacks in Heat, and not just the ones owned by the user,
effectively bypassing tenant scoping.

If the user is not authorized by the policy and they pass the
global_tenant param, the request will get denied by the policy enforcer
and 403 Forbidden is returned.

Implements: blueprint management-api
Change-Id: I973a7ad2726eb6d9c972d08abe15e241aa120ec3
Add tenant to unscoped stack list response

For an unscoped stack list, stacks will possibly belong to several
different tenants.  As a user who can see all stacks, it is useful to be
able to distinguish which stacks belong to which tenants.

Change-Id: I4148a298ef7a41b815b477c49ff4aaf331845129
Implements: blueprint management-api