split nil / Hash cases in url_for

this reduces the number of comparisons and method calls `url_for`
requires.  The nil case no longer calls `symbolize_keys`, we already
know options is nil, so no more ||=, and since it is nil we already know
that options[:host] will be nil too.