Move to common variant

This saves approximately 34kB in the compressed binary size of bmcweb
due to reduced template instantiations.  This amounts to a 2.5%
reduction in the overall size.

Note, there were a few places where we broke const-correctness in the
form of pulling a non-const reference out of a const variant.  This
new variant now requires const correctness, so some consts are
added where required.

Tested: Code compiles.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I6a60c8881c1268627eedb4ffddf16689dc5f6ed2
diff --git a/redfish-core/lib/roles.hpp b/redfish-core/lib/roles.hpp
index 8f14b2e..5aa1a22 100644
--- a/redfish-core/lib/roles.hpp
+++ b/redfish-core/lib/roles.hpp
@@ -16,6 +16,7 @@
 #pragma once
 
 #include <app.hpp>
+#include <dbus_utility.hpp>
 #include <registries/privilege_registry.hpp>
 
 #include <variant>
@@ -114,9 +115,8 @@
                     {"Description", "BMC User Roles"}};
 
                 crow::connections::systemBus->async_method_call(
-                    [asyncResp](
-                        const boost::system::error_code ec,
-                        const std::variant<std::vector<std::string>>& resp) {
+                    [asyncResp](const boost::system::error_code ec,
+                                const dbus::utility::DbusVariantType& resp) {
                         if (ec)
                         {
                             messages::internalError(asyncResp->res);