HOT templates get_attr allows extra attributes

The HOT templates now allows the use of extra attributes for the
get_attr function. Wich this change is possible to traverse complex
resource attributes.

For example, getting an IP address for a server on a given network:

when the network name is stable, and always known:
get_attr:
- my_server
- networks
- public
- 0

or if the network name is something other than public:
get_attr:
- my_server
- networks
- get_param: my_network_name
- 0

If one of the extra arguments does not match with a key or a valid
index, an empty string is returned.

As a bonus track the Fn::GetAttr support was removed from the HOT
templates.

Change-Id: Ia7361fbd10611cc796bd90e781f4ae387c970dbd
Implements: blueprint hot-select
Use a HeatIdentifier instance to create Parameters

This is the first commit in order to implement native pseudo parameters
for HOT templates.

Now to create a Parameters instance, a HeatIdentifier is used instead
of two variables (stack_name and stack_id)

Change-Id: Ifc914f8f6c943da73da5984452d424cf180b91e7
Implements: blueprint native-pseudo-params
Native Pseudo Parameters

This is the second patch in order to implement native pseudo parameters
for HOT templates.

The current pseudo-parameters (AWS:: ones) are now mapped to "native"
parameter names.

Now HOTemplate uses HOTParameters instead of Parameters in order to
set up correctly the stack id, which for the HOTemplates is an uuid and
for CFN templates is an arn.

Change-Id: I6361ef1aae55eee762c3f21c9c01ae6ca4a9ff01
Implements: blueprint native-pseudo-params
Closes-Bug: #1229415
Prevent access Parameters key in template dict

This is the third patch in order to implement native pseudo parameters
for HOT templates.

If someone needs to access to the Parameters section of a template, now
can use the parameters() method of Template/HOTemplate classes. In order
to enforce this as the only way of doing it, if the Parameters section
is access using the template as a dictionary an exception is raised.

Change-Id: Ia60b4d2393370b12bf2681b0985ce1cd6e91ac1a
Implements: blueprint native-pseudo-params
Merge "HOT templates get_attr allows extra attributes"
Merge "Use a HeatIdentifier instance to create Parameters"
Merge "Native Pseudo Parameters"
Merge "Prevent access Parameters key in template dict"