Adding NodeConfig#initialize yield

Instead of relying on the obtuse #tap method, allow for a block to be
passed to the NodeConfig#initiailize.
Removing multiple interations over collection

In doing #map then #reject the collection is being iterated over
twice. By moving to #each_with_object, there is one less interation.
Replacing destructive method call with idempotent

Instead of modifying the input hash by calling Hash#delete, prefer to
fetch the key (with a comparable default) and pass the options along
without the previously deleted key.
Merge pull request #50 from jeremyf/removing-multiple-iterations

Removing multiple interations over collection
Merge pull request #48 from jeremyf/adding-block-initializer-for-node-config

Adding NodeConfig#initialize yield
Merge pull request #51 from jeremyf/replacing-delete-with-fetch-and-except

Replacing destructive method call with idempotent
Get rid of the singleton_class stuff. Create a builder object for creating the accessor methods