fix($location/$browser): prevent infinite digests on empty hash changes

Fixes #9635
I agree that strictly speaking, this is not supported, but I tested this with Chrome and Safari and in both cases location.hash was unescaped