Fix blank result in ODBC::GetSQLError

It seems with MSSQL at least, SQLGetDiagField needs to be called with
record number 0 when retrieving header fields such as the error count
(even though the documentation states that the record number is
ignored). This stops SQLGetDiagField returning SQL _ERROR and thus
numfields being uninitialized.
More fixes for errors and multiple result sets

1. If the first result set is an error, still construct a result object
as there may be further result sets, e.g.
```SQL
select 1/0 as [infinity];
select 'This message should be returned' as [message];
```

2. Secondly, fix a case where a spurious result set is produced
following multiple errors:
```SQL
select 1 as i;
raiserror('Error #1', 16, 1);
raiserror('Error #2', 16, 1);
select 'You should not see a blank result set before this message' as
[message];
```
Fix undefined behaviour in UV_AfterExecute

args is declared as "Local<Value> args[3];" but then args[3] is
assigned...
More arrays declared wrong
Update package.json to point to wankdanker's repo

Sorry Lee. Hope you don't mind. :)
Cast error string to avoid compiler warning