option: Remove unused friend declarations.

They were only important back when some(..) directly called the option's
constructors. No longer relevant since some() and make_optional() both
indirectly and directly, respectively, go through option_t::make(...)
to avoid constructor ambiguity.
option: Remove map/flat_map/apply functions that take by-ref functions.

No point having them. Really none whatsoever.
option: Remove some(T const &).

Correctly forward argument from some(T &&) to make_optional.
option: Place opening braces on new lines for types.
option: Use initializer list for constructing `none`.

Style choice, since having an assignment operator there makes it look a
bit odd.
option: Use doxygen doc comments.

Since nothing currently supports the other odd doc comment style I use.

I'd consider fixing that, but parsing C++ is a nightmare and a half.