Add '<' binop and fix bug

* Add the __lt__ binary operator
* Fix a bug in __mul__: non-exhaustive pattern matching
* Add a factorial example in Utils.hs