Finish core::expected<T> and core::expected<void> implementation