Work on GN Windows build.

Visual Studio had some problems with template type deduction so I added some more explicit parameters. There were also a few misc cases of string conversions that needed updating.

I updated the buildfiles so we only bring in libusb, for example, on Linux (this was already happening, but it was additionally being pulled in everywhere at the top level). I also tweaked some NSS-related file lists.

BUG=
[email protected]

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224202 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/tools/gn/filesystem_utils.cc b/tools/gn/filesystem_utils.cc
index 75b72b2..3ecdc9799 100644
--- a/tools/gn/filesystem_utils.cc
+++ b/tools/gn/filesystem_utils.cc
@@ -192,11 +192,11 @@
   return "";
 }
 
-std::string FilePathToUTF8(const base::FilePath& path) {
+std::string FilePathToUTF8(const base::FilePath::StringType& str) {
 #if defined(OS_WIN)
-  return WideToUTF8(path.value());
+  return WideToUTF8(str);
 #else
-  return path.value();
+  return str;
 #endif
 }