Check existence of charset key in options

The constructor makes use of the charkey value in the options array. When
using an error setting that turns notices into errors and when you
convert all errors into exceptions, this section of code will throw
an exception when the options array doesn't contain the charkey key.

This patch checks for the existence of the charset key and sets values
appropriately so that PHP doesn't throw an exception.
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().
Merge pull request #11 from alfmel/4fd981f6d7

Improve PDO compatibility and other code clean-ups