[WIP] Optional type

Done:
- returning double or none
- comparison of optional(any_type) with none

TODO:
- optional(type) as argument
I think it may make sense to add unit tests for unify_pairs() (there are a couple already in test_typeinfer).