Assert: fixed exception() return

Default `Assert::$onFailure` callback throws exception so line `return $e` is never reached. With a custom callback which does not throws `AssertException` line `return $e` may be reached but `$e` is not defined and `E_NOTICE: Undefined variable: e` is triggered.

So I added default `$e = NULL` and in this case `$e === NULL` looks more proper to me, it is equivalent to `!isset($e)`, no behaviour difference.