Updated error translation logic.

This CL changes several aspects of our error translation code:
- Moves the actual translation process to |-loadErrorInNativeView:|.
  This allows the logic in |-handleLoadError:inMainFrame:| to correctly
  differentiate between webview-generated errors and errors originating
  from the net stack.
- Changes |NetErrorFromError()| to translate the ultimate underlying
  error rather than the top-level error, and appends the translated
  error to the end of the passed-in error's underlying error chain.
- Created |GetUltimateUnderlyingErrorForError()|, which iterates through
  the underlying error chain to find the original error.

BUG=492434, 496972, 496115, 473888

Review URL: https://codereview.chromium.org/1178063007

Cr-Commit-Position: refs/heads/master@{#337475}
9 files changed