[WIP] Optional type

Done:
- returning double or none
- comparison of optional(any_type) with none

TODO:
- optional(type) as argument
This needs further discussion.  `is` and `is not` checks object identity but values are usually not object in nopython mode.  Maybe it make sense to make these operations unsupported for other types.