Fix folly::to<> under MSVC
Summary: MSVC didn't like the conversion to using `Expected`, and, after `Expected` was fixed to work under MSVC, conv still needs more changes. Specifically MSVC doesn't understand the single-instantiation form of getting the last element, so we have to switch to a tuple-backed version instead, which requires more template instantions, but produces the same performance at runtime.
Reviewed By: ericniebler
Differential Revision:
D3744063
fbshipit-source-id:
affcab1574c721d8b9529784d7ca2a46233d9935