Add FilePath::FinalExtension() to avoid double extensions (.tar.gz) for file selector

Windows and OS X file selectors break badly on double-extensions. GTK and
Chrome OS handle it slightly better, but CrOS has a slight bug and GTK's
handling of file extensions is minimal, so not a whole lot changed. See
https://codereview.chromium.org/4883003/#msg14 for full analysis of
platform behavior.

There is some logic that does benefit from long extensions (renaming "foo.tar.gz"
to "foo (1).tar.gz" instead of "foo.tar (1).gz"), and some other callers store
state based on extension, so rather than changing FilePath::Extension, add a
new FilePath::FinalExtension and change SelectFileDialog callers to use it.

Also work around a problem in NSSavePanel when saving "foo.tar.gz" with
extensions hidden.

TEST=FilePath.Extension,
     FilePath.Extension2
     FilePath.RemoveExtension
     Enabling "Ask where to save each file before downloading"; saving a tar.gz doesn't result in weird confirmation prompt on OS X, with or without "Show all filename extensions" enabled in Finder.
BUG=83084

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239505 0039d316-1c4b-4281-b951-d872f2087c98
Add support for java versions of WebContents and NavigationController.

This is on the path of cleaning of ContentViewCore, which has been a
dumping ground for all things webcontents-y.  The hope is to move to a
world where java mimics other platforms more closely.

BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239506 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239505
Add code to fetch the windows type along its version to base.

BUG=none
TEST=none

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239507 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239507