Add a get_tags() method to the Metadata class

Tags are not properly implemented in nova so we pass the tags
to nova as metadata. So we now [w]get the nova metadata.
Since this is called repeatedly we cache the metadata.

We also add the nova instance id (uuid) as a guest tag.

Change-Id: I599f22fd5166e88cb3d21a71ead5f48c5c5a9269
Use the server tags for dimensions and make watch_name optional.

This allows us to stop creating templates with circular dependancies.

So we can change:
  cfn-push-stats --watch {Ref: TheAlarm}
to:
  cfn-push-stats

This makes it closer to AWS and actually better as users can add their
own dimensions via the tags.

Change-Id: I365ae57c2275a2d064075eb1b3e14aa1e418d1ee