Initialize `Optional` with `Optional.empty` instead of `null`

As written in #674 (comment).

It would be better if we do not create null optional, but rather Optional.empty when needed. This could be done in Type#getNull.