
This mostly copys the `<experimental/functional>` stuff and updates the code to current libc++ style. Reviewed By: ldionne, #libc Spies: nlopes, adamdebreceni, arichardson, libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D121074