Don't ignore event creation errors

Don't catch exceptions when creating events and instead let the error
propagate. Exceptions when storing events could hide programming errors
and doesn't seem to protect against real issues. The patch also fixes
the tests breaking.

Change-Id: I5eef34c0ed20f9700756e479ace6408304d2cebe
Support multiple heatclient versions for SD

The software_deployment resources lazy loads data via the
heatclient _get() function. Not only is this function private
but the oslo-incubator recently reverted things such that
get() should once again be used for lazy loading details.

See oslo-incubator commit 04a1abe59ac39890f57d2eed57d3d1b12bb5d757

This was merged into heatclient master in:

72017c566850da589f7dc7dc275871986aadbd54

This patch makes it so that heat will work with both versions
of heatclient.

Change-Id: I1799636d39cea410b55ffe72eeecba4f4a7a0f80
Closes-bug: #1308770
Avoid redundant polling of DB for metadata

Every time self.metadata is read, it triggers a refresh from the database.
We were accessing it multiple times in a loop, which is not only wasteful
but can get very O(n^2) for a WaitCondition with a high Count.

Partial-Bug: #1306743

Change-Id: I1a82afac6c4ef56dbf87722648034c05abef4010
Merge "Support multiple heatclient versions for SD"
Merge "Don't ignore event creation errors"