CXX-2038 Use optionals for all option getters. Otherwise users cannot distinguish between a case of an empty option explicitly present in the URI and the option being omitted. Also change getters that return a std::string to return a string_view since a copy is not necessary.