MCO-363 Add a fact_data plugin

This plugin exposes the walking of structured facts to the compound query
language.

Some example usages:

   ./mco ping -S 'fact("roles.0").value=base'
   ./mco ping -S 'fact("system_uptime.days").value>10'

We split the parameter into path components on the '.', and then recursively
walk from the root facts down, by hash key or array index.

As a data plugin cannot return structured data directly, we may json encode the
value, and set the value_encoding property to 'application/json', otherwise it
will be 'text/plain' or, if a value is not found, the boolean false.