Improve PDO compatibility and other code clean-ups

This is a rather large patch. I apologize. Let me explain what it does.

First, it updates all document blocks to match more closely with the
current PDO and PDOStatement documentation. It also provides descriptions
for the parameters and return values, and that the exceptions thrown and
return values are correct. This greatly helps advanced IDEs provide better
autocomplete hints.

Second, the patch makes additional TODO annotations on work that still
needs to be done. In cases where methods are prototyped but not implemented
(like Statement::setFetchMode) it throws an exception to alert the user
the functionality is not implemented.

Third, while looking through the code, I noticed a PDO incompatibility.
PDO specifies the the inTransaction method. However, the code called it
isTransaction. I renamed all uses of isTransaction() to inTransaction()
(including the $_isTransaction protected property). I also marked the
isTransaction method as deprecated and changed it so that it calls
inTransaction().