Given a symbol and a scope, returns an URL.
Various methods are tried to resolve the symbol. First the
parameters are taken off, then we try to split the symbol using '.' or
'::'. The params are added back, and then we try to match this scoped
name against the current scope. If that fails, then we recursively try
enclosing scopes.