Almost full set of unit tests (~90% coverage) for Option.

Some minor fixes and changes on Option.
Most major is that flatten is a property rather than a method now.
'var something = Option.Some(42).flatten' reads easier.
Removed unused namespace includes.