Added X::TypeCheck::Argument and means for the Optimizer to throw typed ...

...exceptions.

Feedback w.r.t. test-cases for the mentioned to cases (lines 558ff and 585ff) is appreciated.
There's another PR for roast.