Merge History {push,replace}State logic with same document navigation logic

They do almost identical work when it comes to updating urls (document url,
referrer, etc.), sending FrameLoaderClient callbacks, and updating the redirect
chain.

Also, remove FrameLoader::dispatchDidChangeLocationWithPage, which is only
used for testing.


BUG=

Review URL: https://chromiumcodereview.appspot.com/22274012

git-svn-id: svn://svn.chromium.org/blink/trunk@155718 bbb929c8-8fbe-4397-9dbb-9b2b20218538