extract normalize_facts from get_fact to make it easier to test

Here we test the current behaviours of forcing all keys and values to be
strings
recursively normalise facts

Here we avoid splatting arrays and hashes flat, by recursing over them as we
normalise.