The rationale for Optional (in Java)