Add Chef and Puppet support to Instance, Suite, & Platform objects.

In this new implementation, the Config class still prepares and
constructs the Instance, Suite, & Platform objects. However, depending
on the provisioner requested, the 3 objects will be extended to be
"Cheflike" or "Puppetlike" so that they can expose methods such as
`#run_list` or `#manifest`.

The Instance, Suite, & Platform extended behavior is determined as
follows:

* If the provisioner name begins with `"chef_"`, then extend the object
  with the appropriate Cheflike module
* If the provisioner name begins with `"puppet_"` then extend the object
  with the appropriate Puppetlike module
* Otherwise do not extend the object

While admitedly, the implemenation is a bit "out of the box", the end
result is the method API contract on Instance, Suite, & Platform are not
altered (assuming we are dealing with a Chef provisioner) and additional
provisioner family types such as Puppet are supportable.