feat($location): Location change notifications can now be skipped

This adds a new `notify` method to `$location` that allows updating the location without triggering `$locationChangeStart`/`$locationChangeSuccess` events.

The method is chainable and must be called with a boolean parameter. Any falsy value will disable the notification procedure and will block any route update that may apply.

The skip flag will be reset after any digest cycle, so it must be set again on any subsequent change if needed.

Example: `$location.path('/client/2').replace().notify(false);`

Closes #1699