Move towards Python-compliant interface of exceptions

This is patch along the lines of #151. This patch allows to "instantiate" exception with arguments, and prints them as such, while still keeping C-level interface as is.

In particular, now ``assert False, "error message"`` syntax now works (and assert message is visible to user).

Testcase is disable due to lack of repr() in uPy.