[refactor] use a namespaced exception for each SPL standard Exception used
[add] specialised exception PatternNotCompiledException extends InvalidStateException extends LogicException
[comment] ocd
[refactor] mark all base Exception classes abstract and rename them accordingly
Merge branch 'develop'