Double-NUL-terminate UTF-16 string buffers

I've run into memory corruption bugs with the following test program on
64-bit Linux, sizeof(wchar_t) == 4, sizeof(Py_UNICODE) == 4,
sizeof(SQLWCHAR) == 2.

    from pypyodbc import connect

    # Replace '...' with real values
    conn_string = 'DRIVER={SQL Server};SERVER=...;PORT=1433;UID=...;PWD=...;TDS_Version=7.1;APP=...;DATABASE=...'
    while True:
        connect(conn_string, ansi=False)

For me this typically causes libc to abort() complaining of memory
corruption, double-free, etc. within a few tens of iterations with
cpython (and quicker with pypy).

The bug seems to be in the conversion from Python string to
SQLWCHAR * when calling SQLDriverConnectW. Given the sizes above,
pypyodbc sets wchar_pointer = ctypes.c_char_p, then passes a
UTF-16-encoded byte buffer to it. ctypes.c_char_p null-terminates the
string when converting to a C array - but it only adds a single NUL
byte. unixODBC expects that argument to be a UTF-16 array, terminated by
two NUL bytes.

This fix is a bit of a hack, but it does work.

It might be clearer to define something akin to c_char_p for these
arguments, I suppose.