Merge pull request #578 from jhoblitt/fact_loading

(FACT-163) refactor fact [file] loading
(FACT-166) change acceptable fact names to be only lowercase Symbols

Adds Facter::Util::Name::canonicalize_name as a guard/helper method intended to
be called on the fact name parameter of public methods.  String and uppercase
character values are still accepted as fact names but will generate warning(s).
This is intended to deprecate non-Symbol fact names.

This changeset updates the facter core and any in tree tests that had
assumptions broken by this change.  It does not update all of the in tree
facts+fact tests to the new rules in order to keep the changeset down to a more
easily reviewable size.  A subsequent CS will update non-conforming fact names.