Don't require all parameters to be supplied

Allow default parameters to be used
How about we make `get_parameter_recursive()` act like `dict.get()`, which accepts a key and a default value if this key does not exist. Then, you'll be able to just do something like
```python
for parameter in template.get('Parameters', []):
    parameters[parameter] = datasource_collection.get_parameter_recursive(parameter, template_parameters.get(parameter, None))
```