Before validating resources, generate placeholder NodeData for them in the
StackDefinition. Currently, all attributes are given a value of None
(consistent with how the get_attr intrinsic functions substitute them when
the resource state indicates that the attributes are not valid now).
Reference IDs are generated as usual (since the logic for what to return
when the state indicates the data are not valid is contained in the
resource plugins).
In the long term, this should help us to remove the state-checking logic
from the intrinsic functions.
In the short term, this allows us to validate template data that is parsed
against the StackDefinition (rather than the Stack), since it gives us a
list of valid attribute names.
In the medium term, this should give us a place to substitute in more
sophisticated placeholder values to do better validation.
Change-Id: I154ff0cd019d279379886fccbd708cf0d39ce53f