Draft: Add experimental standard scope guards
This adds an implementation for scoped guards proposed for the standard library: https://en.cppreference.com/w/cpp/experimental/lib_extensions_3. We use guards in some places but they are very basic. It would be nice to have a proper solution, so this is to a proper implementation of the generic guard for the experimental std::scope_[exit|fail|success]
.