Support array-based options argument for Smarty function {urlFor}

Smarty supports native PHP arrays as arguments for functions. I think the syntax in templates is much cleaner than the current 'dot'-solution. This PR is backwards compatible.

Example usages:
```
{urlFor name="foo" options=["key" => "value"]}
{urlFor name="foo" options=["key" => $value]}
{urlFor name="foo" options=$options}
```