This adds a lightweight, easy to use std::variant wrapper intended to be used as a return type for functions that can return either a result or an error code.