apphandler: Add firmware_revision support for ipmi config

Allow us to configure the firmware revision if needed. The field is
optional and will override the existing firmware revision.
This provide us a way to customize the firmware revision to anything we
want.

Tested:
With firmware_revision in dev_id.json
```
$ cat /usr/share/ipmi-providers/dev_id.json
$ ipmitool mc info
{
    "id": 0,
    "revision": 0,
    "addn_dev_support": 0,
    "firmware_revision": {
        "major": 35,
        "minor": 16
    },
    "manuf_id": 11129,
    "prod_id": 14426,
    "aux": 0
}

ipmitool mc info
Device ID                 : 0
Device Revision           : 0
Firmware Revision         : 35.10
IPMI Version              : 2.0
Manufacturer ID           : 11129
Manufacturer Name         : Google, Inc.
Product ID                : 14426 (0x385a)
Product Name              : Unknown (0x385A)
Device Available          : yes
Provides Device SDRs      : no
Additional Device Support :
Aux Firmware Rev Info     :
    0x00
    0x00
    0x00
    0x00
```

Change-Id: Ia05ceb9ff5ca46b104e70ad9230432e79fc70d07
Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/apphandler.cpp b/apphandler.cpp
index 0577c07..8c81dc8 100644
--- a/apphandler.cpp
+++ b/apphandler.cpp
@@ -645,6 +645,19 @@
                 devId.prodId = data.value("prod_id", 0);
                 devId.aux = data.value("aux", 0);
 
+                if (data.contains("firmware_revision"))
+                {
+                    const auto& firmwareRevision = data.at("firmware_revision");
+                    if (firmwareRevision.contains("major"))
+                    {
+                        firmwareRevision.at("major").get_to(devId.fw[0]);
+                    }
+                    if (firmwareRevision.contains("minor"))
+                    {
+                        firmwareRevision.at("minor").get_to(devId.fw[1]);
+                    }
+                }
+
                 // Set the availablitity of the BMC.
                 defaultActivationSetting = data.value("availability", true);