Refactor to support more operations

This refactor is aimed at supporting more
operations other then install.

This refactor creates
Librarian::Puppet::Simple::Util. This module
is intended to store methods that can be used by
multiple operations. This includes system_cmd,
module_path, and base_dir.

move puppetfile option to be a class option (so
that it can be used by other operations)

Adds an iterator module. The mod method from the
puppet file now just consumes the contents of the
file and constructs a hash. the iterator module
implements the mod method, and also provides
two iterators. One that iterates through all
entries, and another that can be used to iterate
just through a certain type of sources from a
Puppetfile.

These iterators were implemented so that the same
mod method can be run for multiple operations.