Introduced the interface IOption<T> as base. Applied new coding rules. Refactored None instance handling and naming.