Adds an OptionVal.
Adds encoding for option type.
Adds Decode for Option type.

NB: Empty strings are decoded as Some("").