fix($location): handle plus character in query strings

Closes #3042