(FACT-65) Allow resolutions to be created and looked up by name
(refactor) Extract fact options handling
(FACT-207) Simplify Fact options hash evaluation

Facts only accept the :ldapname option which is deprecated, and it
doesn't look like there will be any other options added. This commit
simplifies the options hash parsing and modifies the hash in place so
that other objects don't have to know about extra hash options.
(FACT-65) Collections should be able to directly create facts

The existing `Collection#add` method would create a new fact and
resolution at the same time. This means that facts themselves could not
be created and manipulated. This commit adds `#define_fact` so that new
facts can be created by themselves.

This commit also removes tests inside of the collection for the
:ldapname fact option since that's going the way of the dinosaurs.
(maint) set resolution properties from an options hash
(maint) decouple option settings on facts and resolutions
(maint) Reuse fact creation logic in collection
(FACT-65) Allow resolutions to specify their name as an option
Merge remote-tracking branch 'origin/stable' into facter-2
Merge pull request #600 from adrienthebo/feature/facter-2/fact-65-named-resolutions

Feature/facter 2/fact 65 named resolutions
Merge branch 'facter-2'

Conflicts:
	lib/facter/util/resolution.rb