Handle other PLDM_STATE_SET_OPERATIONAL states

- Code will no longer assume the OCC is not running if an unexpected
state is received. It will continue to look for a good/known state.
- Added code that will throttle the occ-control pldm journal traces
if unable to read the OCC active sensor states. In some error
conditions, this tracing would flood the trace and the repeated traces
are not helpful for debug.
- Change some journal entries to ERR when the state indicated that the
system was in safe mode (OCCs disabled)
- If request for occ active sensor state was sent, and then a PLDM
sensor event comes in for that instance, the event status is used and
the response is ignored.
- Added README for occ-control

Signed-off-by: Chris Cain <cjcain@us.ibm.com>
Change-Id: Ic26f1d0c4dc59e7a61b965b052d649e4bc152fde
diff --git a/pldm.hpp b/pldm.hpp
index 1526bd4..1f878e5 100644
--- a/pldm.hpp
+++ b/pldm.hpp
@@ -142,6 +142,12 @@
      */
     void checkActiveSensor(uint8_t instance);
 
+    /** @brief Set the throttleTraces flag
+     *
+     * @param[in] throttle - Flag to indicate if traces should be throttled
+     */
+    void setTraceThrottle(const bool throttle);
+
   private:
     /** @brief MCTP instance number used in PLDM requests
      */
@@ -242,6 +248,11 @@
 
     std::set<uint8_t> outstandingHResets;
 
+    /** @brief Flag to indicate that traces should be throttled.
+               Used to limit traces when there are issues getting OCC status.
+     */
+    static bool throttleTraces;
+
     /** @brief Callback when PLDM response has not been received within the
      * timeout period.
      */