Allow PDO to reconnect if it fails during a query.

This pull request will attempt to reconnect if the wait_timeout has been exceeded resulting in a mysql has cone away e$

In order to help test this you will need to do the following:

1. Set a low wait timeout: set @@GLOBAL.wait_timeout=30;
2. Try putting a sleep of 2 somewhere after an initial query. Session->Start() is a good option.
3. Use the site and see if there are any errors.

This pull request will require a significant amount of testing due to it's low-level nature.