Fix connectTimeout and add loginTimeout

This should fix #50. Previously we were using SQL_ATTR_LOGIN_TIMEOUT as the connect
attribute for connectionTimeout. I think this is wrong. I have replaced the attribute
with SQL_ATTR_CONNECTION_TIMEOUT and introduce another attribute called loginTimeout
to set SQL_ATTR_LOGIN_TIMEOUT.
Use C99 designated struct initializer (removes warnings on OSX)
Properly accept 0 as a value for connectTimeout and loginTimeout
Set default connectTimeout to 0

This in effect preserves the previous behavior where we would
set SQL_ATTR_LOGIN_TIMEOUT to 5. It seems that setting a timeout
value for SQL_ATTR_CONNECTION_TIMEOUT causes an assertion error
with the FreeTDS driver
Use SQLUINTEGER for connectTimeout and loginTimeout

Before we were using plain int. This is just an attempt to be accurate
in hopes of fixing a FreeTDS assertion when connecting with a value for
connectTimeout
Update test-binding-connection-timeOut to reflect the new default value of connectTimeout
Use member value of connectTimeout or loginTimeout directly

Instead of making a local copy of connectTimeout and loginTimeout
use the value directly on the object like: &self->connectTimeout

I am weary of doing this because I've had issues in the past with
creating a pointer from a member variable and it is just my own
lack of knowledge of C/C++ that makes me feel this way. However,
in use this way it does not cause an error assertion in FreeTDS
Readability for getting the address of members
Merge branch 'v0.6' into fix-connectTimeout
Call SQLSetConnectAttr properly

Evidently we must pass the value of the connectTimeout or loginTimeout to
SQLSetConnectAttr, not a pointer to the value. This is super counter-intuitive
because we have to cast the value to a SQLPOINTER in order to get it to even
compile. In order to avoid compiler warnings we must cast to size_t before
casting to SQLPOINTER.

This will properly timeout connections when attempting to connect to a
non-running server; at least with the FreeTDS driver.
Prevent infinite loop when processing string values

A corner case occurred which was probably caused by a ODBC driver behaving
incorrectly. The first call to SQLGetData would return len == 0 which
indicates an empty string. The next time through the loop we would expect
SQLGetData to return ret == SQL_NO_DATA. This is not happening in some
cases, so an infinite loop occurs.

To fix this we check if len == 0 before looping again, if so we break out
of the loop. This is a slight optimization because if we know len == 0 then
there is no point in calling SQLGetData again to see if there are more data.
Merge branch 'fix-connectTimeout' into v0.6
0.6.5