add ironfan components and plugins, bump to 5.0.0

Ironfan components provide functionality similar to Chef roles: they
provide a way to group recipes and attributes. Unlike roles, they live
entirely on the client side and can be parameterized. The following
example creates an nfs server component and then uses it in a cluster
definition. Note that components are Gorillib Builders, which allows
the 'foo' parameter to be passed in in this case.

    Ironfan::Plugin::Component.create(%w[nfs server]) do
      magic :foo, String

      def project(compute)
        compute.instances(1)
        compute.cloud(:ec2).security_group(:nfs_server).authorize_group :systemwide

	Chef::Log.info("was passed #{foo} by the cluster")

        compute.recipe 'nfs'
        compute.recipe 'nfs::server'
      end
    end

    Ironfan.cluster(:nfs) do
      facet(:server) do
        nfs_server{ foo 'foo string' }
      end
    end