* Add regression test for infinite loop issue in Util::step_through_extensions (#1889)
* Prevent infinite loop when encountering files where base filename is a possible templating engine
If the relative option is set and the asset is stored in the directory
alongside the resource referencing it, asset_url produces the
wrong path ('../images/image.jpg' rather than just 'image.jpg').
Seeing that in #touch_file that a value in data could be an Array or Hash, loosen contracts to allow for other storage & retrieval methods to set the same types. Array & Hash being allowable is strongly tied to what *could* be returned after passing through Util.recursively_enhance
[close#1803]