Fix LifecycleEnvironment.{build,create}

> When a new lifecycle environment is created, it must either:
>
> * Reference some other lifecycle environment via the "prior" field.
> * Have a name of "Library". Note that within a given organization, there
>   can only be a single lifecycle environment with a name of "Library".

Override method `LifecycleEnvironment.build`, thus allowing one to easily create
new lifecycle environments. Incidentally, this also prevents a recursive death
spiral from occurring when `build` or `create` are called.

Update `tests/foreman/api/test_multiple_paths.py` to take advantage of this
change.
Merge pull request #1200 from Ichimonji10/lifecycle-environment

Fix LifecycleEnvironment.{build,create}
Added test for puppet-module
parameters can be created with blank value so moved them to +ve tests
Fixed test for puppet-module
Merge pull request #1204 from sghai/set-param-tests

Parameters can be created with blank value so moved them to +ve tests
Fixed various failing tests
Merge pull request #1202 from tkolhar/test_cli

Added test for puppet-module
Merge pull request #1201 from sghai/fix-test

Fixed various failing tests
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.