Added custom exceptions [WIP]

Inspired at http://www.doctrine-project.org
This is not abstract exception as well as LogicException is not abstract.