Some refactoring for ensure and ensureNot
Allow $exception parameter to be Exception instance
Merge pull request #12 from chadicus/master

some refactoring and allow Exception to be based to ensure[Not]