Added Option and ValueOption idioms.

- These classes allow you to represent logical optionality
- Distinguished implementation for reference- and value-types mainly
  because of optimization.