Summary: Refactor `folly::Optional` models to make them easier to reuse for `std::optional` Reviewed By: jvillard Differential Revision: D24760053 fbshipit-source-id: f665e84c8