Use 3rdparty Optional, name it akOptional
The 3rd party Optional has full interface of the C++17 optional,
so migration will be easier eventualy. Also don't inject it to
the std namespace (which is against the rules), instead we roll
our own typedef called akOptional.