Don't write to Async objects after we've deleted them

The handle here is actually the uv_async_t object named watcher that
is part of the Async object so we shouldn't try and write to it after
the Async object has been freed.
Move some protected methods to public

Starting with version 4.8 gcc complains about attempts to pass these
protected methods to NODE_SET_PROTOTYPE_METHOD as the callback.
Make sure the INSERT completes before trying the SELECT
ensure the test db is created if the user only runs npm test
back off on the size of the big.db to make it easier to run the test without long wait cycles
give mocha more timeout to ensure parallel test has time to run
add support for dynamically unpacking the bundled sqlite3 dep to avoid having to store the uncompressed files in git
integrate pull request #135 into #136 since they touch the same files
fix the include path for the sqlite depedency
windows fixes
more windows fixes
Merge pull request #136 from developmentseed/unpack-sqlite-dep

Unpack sqlite dep dynamically and move build node_sqlite3.node module into ./lib folder
ensure test/tmp directory exists to avoid tests failing to run
move test/tmp directory creation to sync to avoid race to create directory which will appear as'Error: done() called multiple times' - refs visionmedia/mocha#316
disable the loadExtension test which will crash when the extension is built against a different external sqlite version than the bundled one (which is likely)
upgrade bundled sqlite3 to latest as of June 2013 (3071602 -> 3071700)
Merge pull request #132 from tomhughes/tests

Make sure the INSERT completes before trying the SELECT
Merge pull request #117 from tomhughes/master

Avoid writing to freed memory
Merge pull request #121 from tomhughes/gcc48

Move some protected methods to public
update readme to note mocha and different build details