Minor fixes to make redfish pass compliance tests

1. Role members needs to be an array, not an object
2. Fix accounts schema to use the new user manager
3. Remove "status" field hardcodes
4. Hardcode chassisType to rackmount for now
5. Work around bug in get sub routes
6. Add ID to SessionService Schema

Change-Id: Ibb13d6ace747ac028e840638868c3a01d65dedfa
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/redfish-core/lib/roles.hpp b/redfish-core/lib/roles.hpp
index fc804c2..7b7a804 100644
--- a/redfish-core/lib/roles.hpp
+++ b/redfish-core/lib/roles.hpp
@@ -62,7 +62,7 @@
     Node::json["Description"] = "BMC User Roles";
     Node::json["Members@odata.count"] = 1;
     Node::json["Members"] = {
-        {"@odata.id", "/redfish/v1/AccountService/Roles/Administrator"}};
+        {{"@odata.id", "/redfish/v1/AccountService/Roles/Administrator"}}};
 
     entityPrivileges = {{crow::HTTPMethod::GET, {{"Login"}}},
                         {crow::HTTPMethod::HEAD, {{"Login"}}},
@@ -76,6 +76,11 @@
   void doGet(crow::response& res, const crow::request& req,
              const std::vector<std::string>& params) override {
     res.json_value = Node::json;
+    // This is a short term solution to work around a bug.  GetSubroutes
+    // accidentally recognizes the Roles/Administrator route as a subroute
+    // (because it's hardcoded to a single entity).  Remove this line when that
+    // is resolved
+    res.json_value.erase("Administrator");
     res.end();
   }
 };