Added custom exceptions [WIP]

Inspired at http://www.doctrine-project.org
You should definitely pass the original exception, it has different trace than this one. Never take away debug info from the developer.