An implementation of the Optional pattern (also called Maybe, May, Option or a bunch of other things) in C#