implemented DriverException and its descendants (BC break)

This is BC break because method ISupplementalDriver::convertException() was added.

Inspired at http://www.doctrine-project.org
static factory WIP