Remove arg from Factory.{attributes,build,create}

Remove the `fields` argument from methods `Factory.attributes`, `Factory.build`
and `Factory.create`. These three methods largely duplicated the functionality
provided by entities. This is bad in an of itself, because it meant that the
API-related code was not orthogonal:

    SomeEntity(field=value).create()
    SomeEntity().create(fields={'field': value})

However, the arg is also worth dropping because it makes the user vulnerable to
trivial errors. For example, consider these two statements:

    Organization(not_a_field=value).create()
    Organization().create(fields={'not_a_field': value})

Only one of them will raise an error, though both are clearly wrong.
Merge pull request #1199 from Ichimonji10/remove-fields

Remove arg from Factory.{attributes,build,create}
Flesh out ComputeResource entity, test it.

When creating a new "compute resource" entity, a variable set of values must be
provided to the Foreman server. The exact set of values depends on the specified
provider. (e.g. EC2, Rackspace, etc.) Flesh out the ComputeResource entity with
logic necessary for handling this variability in requirements.

Add some API tests for the ComputeResource entity All tests for the
ComputeResource currently fail. These tests fail for a variety of reasons. For
example:

* Creating a compute resource with a provider of 'Rackspace' causes Foreman to
  throw an HTTP 500 with the message "undefined method `upcase' for
  nil:NilClass".
* Creating a compute resource with a provider of 'GCE' fails because Foreman
  needs more data. However, the types of data needed are not discussed in the
  API docs.
* Creating a compute resource with several other providers causes Foreman to
  return the following error: "getaddrinfo: Name or service not known".

These issues should be tackled by someone who knows more about compute
resources.