(maint) Improve default output of structured facts.

For map and array values, cfacter attempted to maintain compatibility
with facter's output. Unfortunately, facter's output makes it really
hard to read map and array values.

This change "pretty prints" map and array values by default, making the
output much easier to read.
This works fine; another way would've been os << string(level*2, ' '). Did you choose fill_n to avoid a possible string copy?