Update recipes to define roles for machine types.

Rather than defining a machine resource itself let's use these to define
the roles that machine resources can use. I'd like to be able to compose
these without causing issues starting up new machines.
Add chef-metal kitchen driver to test the cluster.
Vagrantfile to be used for testing bootnode.
Refactor recipes so that default creates all roles.

This uses the cheffish gem to define roles to make it easier to tag
machines with the appropriate recipes to install software.
Add images to download from the interwebs.