Refactor/facter 2/associate facts and resolutions

This restructures the relationship between facts and resolutions so that resolutions can directly reference their associated facts. This allows error messages to have more context when multiple resolutions are used with an associated facts.

This is needed for GH-624.