Add a test suite testing for regressions in library internals
Finish catch_timeout_when_waiting_for_stanza test
Add catch_escalus_compat_bin_badarg test
Delimit tests from helpers
Add catch_assert_false test

This is internal API and the build system doesn't support convenient
testing of this kind of stuff right now.
Add catch_escalus_user_verify_creation test
Use `error/1,2` instead of `exit/1`

This plays much nicer with `ct_tty_hook.erl` included in new
`ejabberd_tests`.
Instead of getting just the error reason, we also get the stacktrace
showing exact location of the error.
Basically, the difference boils down to this example:

`exit/1`:

    > catch exit(asd).
    {'EXIT',asd}

`error/1`:

    > catch error(asd).
    {'EXIT',{asd,[{erl_eval,do_apply,6,
                            [{file,"erl_eval.erl"},{line,573}]},
                  {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,357}]},
                  {shell,exprs,7,[{file,"shell.erl"},{line,674}]},
                  {shell,eval_exprs,7,[{file,"shell.erl"},{line,629}]},
                  {shell,eval_loop,3,[{file,"shell.erl"},{line,614}]}]}}

`error/2`:

    > catch error(asd, [123, qwe, zxc]).
    {'EXIT',{asd,[{erl_eval,do_apply,
                            [123,qwe,zxc],
                            [{file,"erl_eval.erl"},{line,573}]},
                  {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,357}]},
                  {shell,exprs,7,[{file,"shell.erl"},{line,674}]},
                  {shell,eval_exprs,7,[{file,"shell.erl"},{line,629}]},
                  {shell,eval_loop,3,[{file,"shell.erl"},{line,614}]}]}}
Signal verify_creation/1 behaviour change in case of exception