(CFACT-40) Refactor fact evaluation for future custom fact support.

Refactoring facterlib for the coming support of custom facts:

* Adding --custom-dir and --no-custom-facts command line optinons (not yet implemented).
* Refactoring fact evaluation so that custom facts can add resolvers via a Ruby API.
* Resolvers can now overlap on the facts they resolve; the last resolver that was added to the collection will be the one that resolves the fact.
(maint) Update README example for API changes.

Updating the example in the README for recent API changes.