Add Fn::Replace template function.

This is implemented with python str.replace

For yaml templates, this should be used as a better alternative to
Fn::Join: ['', [...]]

For json templates, the following common pattern:
"Fn::Join": ["", ["line 1\n", ... "line 2\n"]]
could now become more maintainable as:
"Fn::Replace": [{...}, "Fn::Join": ["\n", ["line 1", ... "line 2"]]]

Implements blueprint template-string-function
Implements blueprint bash-environment-function

Change-Id: Ie4817b1d98dd6d6390e086da9b582d33415a0d9f
Return empty string when Fn::Select target is None.

This can happen when a resource is not in the required state
to resolve its FnGetAtt.

Change-Id: I4d104b3577fbd94b920ff172c00d60914d7acd45
Merge "Add Fn::Replace template function."
Merge "Return empty string when Fn::Select target is None."