Separate error information

When an error was returend, its string contained the sqlstate and
message concatenated.  Since the sqlstate is often the most useful
portion of the message, this forced string parsing, an inconvenient
and expensive operation.

Also, the native code was missing.  This native code is a number and
is very precise compared to either sqlstate or messages.

Error objects returned now contain three pieces of information:
1) error message as returned by the driver/server
2) sqlstate key contains the 5 letter/number code of the error
2) code key is the native error code returned by SQL Server/ODBC

Fixes #22
Fixes #45

Microsoft Internal Review Id jaykint-4cb9e45b9b2c4cee80a775ca6132872c
Dates before 1970 can now be inserted

_gmtime64_s cannot convert dates before Jan 1, 1970.

Reimplemented gmtime functionality within the TimestampColumn class
to work for dates before 1970.

Since this class now contains several non-trivial functions, these
functions were moved to a source file of their own, Column.cpp.

Added a simple test to verify the fix, but also did adhoc testing with
several thousand dates.  These are not added simply because the unit
tests would take too long to execute.

Fixes #57

Microsoft Internal Review Id jaykint-04d9b9b5f8914a7a96d80412120d408d
Change 'hang' to 'not respond'

Change wording to more neutral context

Microsoft Internal Review Id jaykint-863451cd9b9044b0ba50e0f0f39079e0
Match parameter validation expectations

The previous parameter validation fix broke certain expectations about
using null as a valid substitute for the parameter array.

This fix now allows the use of null as the parameter array in a query
call:

sql.query( connString, query, null, function( e, r, m ) ... );

Added cases to the parameter validation test for null.

Also included a fix for the parameter validation test.  The test now
verifies that errors were thrown for error cases.

Microsoft Internal Review Id jaykint-f9fd5dc733d04f859637f8f3ae6066d6
Fixed forgotten more flag in sql.query

When sql.query is called, the more flag was not being passed properly
to the user's callback.

Microsoft Internal Review Id jaykint-863451cd9b9044b0ba50e0f0f39079e0
Changed array test in parameter validation

Since Array.isArray is safer and better, the check was changed from:

paramsOrCallback instanceof Array

to

Array.isArray( paramsOrCallback )

Microsoft Internal Review Id jaykint-4e4b23c0ae944ce7b9d4b964040032fb
Fix default date used for time columns

When a time column is retrieved and converted to a Date object, SQL
Server's default date of 1900-1-1 is substituted for the missing
components since time columns don't have a date.

However, the constants being used for this were erroneously using JS
default of 0 as the month rather than 1, the SQL Server default. This
affected the conversion process and caused certain dates to be
returned incorrectly.

Microsoft Internal Review Id jaykint-43ad01c968244ab6a5481cb64ac7d06f
Change name from node-sqlserver to msnodesql

Changed error messages to reflect the new name of the component.

Microsoft Internal Review Id jaykint-f6a2a73d0d204995bf07cc87c80a74ac
Release readiness

Updated README with link to contribution guidelines.
Added contribution guidelines.
Updated package.json with new name, version and other minor things.
Added ignore for Mac .DS_store files.
Merge branch 'v0.2' of https://github.com/WindowsAzure/node-sqlserver into develop
Merge branch 'develop' of https://github.com/clintwood/node-sqlserver into develop