Remove some redundant comments on JNA functions.
Make ScardIoRequest a Structure instead of a PointerType.

Define ScardIoRequest as a Structure which will be passed by reference to SCardTransmit. At the moment, I am still initializing them from the global variables exported by the Winscard library.
Add common superclass Handle for SCardContext and SCardHandle, and ByReference.

Make SCardContext and SCardHandle extend Handle.

Make SCardContextByReference and SCardHandleByReference extend HandleByReference.
Implement toString() on Dword, SCardContext, SCardHandle.

Dword.toString() just returns the number as %d. SCardContext.toString() returns SCardContext{%x}, and likewise for SCardHandle. Note that although handles are pointer-sized on Windows, they cannot be dereferenced.
Implement toString() for Smartcardio classes.

Add toString implementation for JnaCardTerminals, JnaCardTerminal, JnaCard, JnaCardChannel. toString() just prints the class name and values of the handles.
Use SCardGetStatusChange instead of SCardConnect in CardTerminal.isCardPresent.

Simplify the implementation of isCardPresent() to call SCardGetStatusChange. In the process, fix SCARD_W_REMOVED_CARD and SCARD_E_SHARING_VIOLATION errors thrown by isCardPresent on Windows.