Added implementation of Andrei Alexandrescu's scope_guard