More closely wrap handle allocs and frees with uv_mutex_lock

This is an ettempt to ensure that we are only blocking when we absolutely
have to. Previously we were blocking during the entire connect proccess.
This may speed some things up or it may break stuff. Revert this commit
if neccessary.
Fix up remainging compiler warnings.
0.5.8
expose db.closeSync()
Set fetchMode on result objects if fetchMode was passed to Database() constructor
Add fetchMode property to ODBCResult and use as default
Fix thread locking in ODBCConnection::Open[Sync]
Updated tests and new tests
Added benchmarks for comparing prepare vs not
Updated benchmarks and start of separate bind queue
Add next() function to SimpleQueue
Only execute the next queued bind() call after an execute() call
Add tests for bind/execute
Accept params array to stmt.execute() and stmt.executeNonQuery
Added new prepare benchmarks
0.5.9
After executeNonQuery[Sync] call SQLFreeStmt(..., SQL_CLOSE)

Hopefully this will avoid any invalid cursor state messages
Fix executeNonQuery functino on constructor template
test: executeSync() instead of async
properly pass params to conn.query in queryResult