Get metadata from ResourceDefinition

Change-Id: Ic232030015a95a17f3f8c420adbe6da61393eaab
Get resource description from ResourceDefinition

Change-Id: I3b95f1f048a7190d3b37982257a98f5867eebc0a
RPC API: Really don't include metadata in resource list

I made an attempt in e743158e7a61c00e2a32c340d3f268d0835f4c69 to not
include resource metadata when listing resources in the RPC API. Probably
due to a merge conflict, this was unsuccessful (although it did have the
effect of doubling the number of times we refreshed it from the database).

Neither the cfn API nor the native API passes on the metadata information
from list_stack_resources, so it is safe to remove this from the RPC API
for that call (which is the only one that passes detail=False) without
affecting the user-facing APIs.

Change-Id: Ibaddef9b290e88eb548c0427df5c007e3e14bc59
Update: Make addition/removal of resources more explicit

Use add_resource() and remove_resource() functions instead of indexing to
add and remove resources, to make it less surprising that the resources
themselves are being modified in the process.

Change-Id: I392cca8f68165988842affd1e23bce958645921b
Implement Stack loading from DB as a separate function

Separate out the lookup of a stack in the DB from the actual creation from
an existing DB representation.

Change-Id: I709fb7c4059229371ba85a2cd6e87ec5361a5400
List stacks using Stack.load_all()

Abstract the code to list stacks in the database out of service.py and into
the Stack class itself.

Change-Id: If27a184ffc87067f708868f91aaf380753f2de3b
Refactor resource initialisation from DB

Initialise the resource unconditionally to begin with, and use a separate
method to load data from the DB representation.

Change-Id: Ief7c0fb78944dafb1ff30c82647404178d549981
Merge "Get metadata from ResourceDefinition"
Merge "Get resource description from ResourceDefinition"
Merge "RPC API: Really don't include metadata in resource list"
Merge "Update: Make addition/removal of resources more explicit"
Merge "Implement Stack loading from DB as a separate function"
Merge "List stacks using Stack.load_all()"
Merge "Refactor resource initialisation from DB"