feat($location): add support for state and title in pushState

This is a continuation of #3325, re-created per my e-mail thread with @IgorMinar.

Adds $location pushState & replaceState methods acting as proxies to history
pushState & replaceState methods. This allows using pushState to change state
and title as well as URL. Note that these methods are not compatible with
browsers not supporting the HTML5 History API, e.g. IE 9.
Ah, sorry, mixed the change. Title cannot be retrieved via the History API, though, and, contrary to logic, it doesn't update `document.title` or anything like that. Virtually every browser simply ignores this parameter and has been doing it since this API was born.

That's why I wonder if we need to support passing the title at all since it's not used anyway. We could always pass the empty string, it's not that it makes any difference.