storagecommands: Split validation logic

The Fru validation logic is useful in isolation, split it into a
separate library that can be included.

Tested:
[0/1] Running all tests.
 1/12 phosphor-objmgr / well_known                          OK              0.24s
 2/12 phosphor-objmgr / need_to_introspect                  OK              0.22s
 3/12 phosphor-objmgr / name_change                         OK              0.16s
 4/12 phosphor-objmgr / interfaces_added                    OK              0.13s
 5/12 phosphor-objmgr / handler                             OK              0.09s
 6/12 phosphor-objmgr / mapper                              OK              0.07s
 7/12 phosphor-host-ipmid / entitymap_json                  OK              0.06s
 8/12 phosphor-host-ipmid / message                         OK              0.05s
 9/12 phosphor-host-ipmid / session/closesession            OK              0.03s
10/12 phosphor-objmgr / associations                        OK              0.20s
11/12 phosphor-host-ipmid / dbus-sdr/sensorcommands         OK              0.02s
12/12 intel-ipmi-oem / message                              OK              0.02s

Ok:                 12
Expected Fail:      0
Fail:               0
Unexpected Pass:    0
Skipped:            0
Timeout:            0

Change-Id: I9130eb81703b0cda7c3229f16cd689dd2c96c55c
Signed-off-by: Peter Foley <pefoley@google.com>
diff --git a/meson.build b/meson.build
index 2f01792..7383ce8 100644
--- a/meson.build
+++ b/meson.build
@@ -111,6 +111,7 @@
   'src/me_to_redfish_hooks.cpp',
   'src/chassiscommands.cpp',
   'src/allowlist-filter.cpp',
+  'src/fruutils.cpp',
   ipmiallowlist,
 ]