I've migrated all known uses of NoneType to std::nullopt_t. This
patch deprecates NoneType.
I'm using "typedef" instead of "using" because somehow
"[[deprecated]]" and "using" do not seem to get along.
This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
typo: std::nullopt_t
I think the period can be omitted.