Get `gn gen` to succeed on Windows

1. Pull in NSS for net, crypto
2. Copy sqlite from chromium for NSS
3. Some mucking in build/ to avoid DEPSing gyp
4. Pull in gperf and bison on win

I believe 1&2 can be deleted later once net is moved out.

This gets as far as successful project generation, and builds a bunch
of stuff but there's still quite a few compile errors.

Result of `ninja -C out\Debug root -k0 >log.txt` here:
https://gist.github.com/sgraham/7e58a022595db1c0ae60

They don't look too major, but I don't know if mojo wants to take on
longer term support/maintenance of Windows, with bots/etc. so not sure
this is worth it or not.

(To work fully this also requires a ninja binary at ninja ToT that's
not pushed to depot_tools yet. But the compile errors are unrelated,
and ninja will get there eventually.)

R=jam@chromium.org
BUG=

Review URL: https://codereview.chromium.org/694353003
diff --git a/third_party/sqlite/src/test/openv2.test b/third_party/sqlite/src/test/openv2.test
new file mode 100644
index 0000000..843f891
--- /dev/null
+++ b/third_party/sqlite/src/test/openv2.test
@@ -0,0 +1,55 @@
+# 2007 Sep 3
+#
+# The author disclaims copyright to this source code.  In place of
+# a legal notice, here is a blessing:
+#
+#    May you do good and not evil.
+#    May you find forgiveness for yourself and forgive others.
+#    May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+# Tests on the sqlite3_open_v2() interface.
+#
+# $Id: openv2.test,v 1.2 2009/06/11 17:32:45 drh Exp $
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+db close
+file delete -force test.db test.db-journal
+do_test openv2-1.1 {
+  set rc [catch {sqlite3 db test.db -create 0} msg]
+  lappend rc $msg
+} {1 {unable to open database file}}
+do_test openv2-1.2 {
+  info commands db
+} {}
+do_test openv2-1.3 {
+  sqlite3 db test.db
+  db eval {CREATE TABLE t1(x)}
+  db close
+  sqlite3 db test.db -readonly 1
+  db eval {SELECT name FROM sqlite_master}
+} {t1}
+do_test openv2-1.4 {
+  catchsql {
+    INSERT INTO t1 VALUES(123)
+  }
+} {1 {attempt to write a readonly database}}
+
+# Ticket #3908
+# Honor SQLITE_OPEN_READONLY even on an in-memory database, even though
+# this is pointless.
+#
+do_test openv2-2.1 {
+  db close
+  sqlite3 db :memory: -readonly 1
+  db eval {SELECT * FROM sqlite_master}
+} {}
+do_test openv2-2.2 {
+  catchsql {CREATE TABLE t1(x)}
+} {1 {attempt to write a readonly database}}
+
+
+finish_test