Policy table lookup enhancements

Adds support for 2 new lookups:

1) Use the called out device path as the search modifier.
2) Use the called out FRU + the severity of the PEL error
   extracted from the ESEL metadata in the log as the
   search modifier.

If a match isn't found in the policy table with these modifiers,
then the code will search again using the existing modifier checks.

Note:
  PEL = Platform Event Log.  This is the logging standard used
        by OpenPower host firmware.  The PEL contents are in
        the ESEL data in the AdditionalData property in an
        OpenBMC error log entry.

Change-Id: I0e2f3675ece7e792f6b551a5be093351e3585eb6
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/policy_table.cpp b/policy_table.cpp
index d7fb93c..df32d59 100644
--- a/policy_table.cpp
+++ b/policy_table.cpp
@@ -77,8 +77,8 @@
     }
 }
 
-optional_ns::optional<DetailsReference>
-    Table::find(const std::string& error, const std::string& modifier) const
+FindResult Table::find(const std::string& error,
+                       const std::string& modifier) const
 {
     // First find the entry based on the error, and then find which
     // underlying details object it is with the help of the modifier.