change the way how behaviour is changed to arguments first

- redefine check() and matchIfArgs() (which is now renamed to handlePattern()) when arguments is set
fix function name in error message

- temp variable in for loop shadowed name variable
allow alternatives to be more than types i.e. follow the same rules on them
fix error message for alternatives
fix nullable modifier
fix todo comment (array + custom already implemented)
fix stack trace

- last irrelevant function is a lambda inside to() or sometimes check()
fix stack trace regular expression
add tests from signature.js and modify existing a bit
fix difference in check() when called with vs without setArguments()/validate()
add some test + rename describe section
build