WIP (#17890) Fix solaris zones facts

For early commentary only.

This is largely a work in progress, I'm putting it into the form of a pull request because I'd like some feedback on the `on_flush` facter resolution DSL method I'd like to add.

The problem is that I have a table of data that a bunch of facts are being defined from.  Without some caching or some common data and behavior, every dynamic fact would need to call `/usr/sbin/zoneadm list -cp` which is an extremely expensive command.