Add FactsConduit, SlotNameException

FactsConduit is for facts related plugins

SlotNameException is raise if core code calls
a slot that does not exist.
Add test for missing slot name
Add a facts plugin

The example plugin demostrates calling 'facter' and
adding it's facts to our collection of facts, with
keys prepended with 'facter'.

NOTE: this isn't meant to get shipped, just a semi
useful example of what this type of plugin could do