Associate floating IP with router interface

This change will create a dependency from a FloatingIP to a RouterInterface in
this template which interfaces with the same subnet that this FloatingIP's
port is assigned to.

It would be preferable to add the dependency based on matching FloatingIP
floating_network_id and Router external_gateway_info network, but there is
a valid use-case for the Router being external to the template, so the
dependency is matched on the internal subnet instead, which is available
from the RouterInterface property.

Change-Id: Iedff00b382b4fcda741ca5c9b4adc23b176ec48c
Closes-Bug: #1299259
Pass the correct matching_metadata to Ceilometer

When using the Cloud Watch Resource Template don't really have
the json functions to prepend a prefix to the matching_metadata.

The issue here is the nova metadata get converted by Ceilometer from
"metering" to "user_metadata" so depending on the meter name we need to
search for different metadata.

Change-Id: Id3577c8af3f0433577b1ec7b5068585a74f4c3cc
Add an option to disable cloud watch lite

This also adds a deprecation warning.
This also changes the default to use Ceilometer.

Release message:
Anyone deploying Heat should not be using OS::Heat::CWLiteAlarm, but
OS::Ceilometer::Alarm.
CWLiteAlarm should be explictly disabled in /etc/heat/heat.conf by
setting "enable_cloud_watch_lite=false". This will stop Heat from
running a period task check for alarms.

DocImpact
Change-Id: I2a10c14772bdafc001e211d7e94502ac1f6b32b1
Closes-bug: #1322128
FloatingIP updateable port_id, fixed_ip_address

This change implements handle_update for FloatingIP.

FloatingIPAssociation already has handle_update implemented, so
this change is just fixing a gap.

Updateable FloatingIP will be vital if ports end up getting replaced
on every update as per I558db6bac196f49e5c488a577f0580c934b06747

Change-Id: I0a05b8cf916267338e4bcb6a3e12bc2cdcdc3d48
Closes-Bug: #1369748
Related-Bug: #1301486
Add keystone v2 keypair methods

To get KeystoneClientV2 to work with StackUser resources, the
missing methods create_stack_domain_user_keypair and
delete_stack_domain_user_keypair have been added.

StackUser._create_keypair has also been modified to tolerate
having a missing id attribute, which is what the v2 API returns.

Change-Id: I9c19c1ca49f72ff1e760e849712c8c9d5fa7541f
Closes-Bug: #1372687
Include credentials for heat calling self

When in standalone mode, heat needs to include heat credentials
when calling its own REST API.

This change assumes that heat is running in standalone mode if
heat.conf [clients_heat] url has been set.

Change-Id: I34e662c554ea66c6df6ebee6ce3bfb0dc3f8a948
Closes-Bug: #1302578
Merge "Pass the correct matching_metadata to Ceilometer"
Merge "Add an option to disable cloud watch lite"
Merge "FloatingIP updateable port_id, fixed_ip_address"
Merge "Associate floating IP with router interface"
Merge "Add keystone v2 keypair methods"
Merge "Include credentials for heat calling self"