added new tests, should fix #1023,#1022
added exception handles on create methods
Make Entity.Meta.api_path simpler

Each entity's Meta.api_path is currently a tuple in this form:

    api_path = (
        '/api/v2/this_entity/',
        '/api/v2/this_entity/alternative_path',
    )

However, entities offer absolutely no support for intelligently choosing among
these URLs, which leads to confusing and ugly client code like this:

    return self.Meta.api_path[0]

This is a bad state of affairs. Convert each `api_path` to a simpler form:

    api_path = '/some/authoritative/path'

And trim down client code to deal with these changes.
Add instance method Entity.path

By default, this method returns the path used to access all entities of its
kind, but one can also ask for an individual entity's path.

    Organization().path() => 'example.com/api/v2/organizations'
    Organization().path('this') => NoSuchPathError
    Organization(id=25).path() => 'example.com/api/v2/organizations/25'
    Organization(id=25).path('all') => 'example.com/api/v2/organizations'

If one asks for a path which cannot be constructed, an exception is raised.

Add tests for this new method, and fix the setUp/tearDown methods for some
existing tests.
Split lines as per PEP 8.
Merge pull request #1053 from Ichimonji10/entity-path

SomeEntity().path()
removed test_name
Merge pull request #1049 from AdamSaleh/syncplans-product

Added new tests, should fix #1023,#1022
Updated CLI factory for HostGroup command.

Looks like the 'create' method for the 'hostgroup' command has been
updated to include more options.

```bash
Usage:
    hammer hostgroup create [OPTIONS]

Options:
    --architecture ARCHITECTURE_NAME Architecture name
    --architecture-id ARCHITECTURE_ID
    --domain DOMAIN_NAME          Domain name
    --domain-id DOMAIN_ID         May be numerical id or domain name
    --environment ENVIRONMENT_NAME Environment name
    --environment-id ENVIRONMENT_ID
    --medium MEDIUM_NAME          Medium name
    --medium-id MEDIUM_ID
    --name NAME
    --operatingsystem-id OPERATINGSYSTEM_ID
    --parent-id PARENT_ID
    --ptable PTABLE_NAME          Partition table name
    --ptable-id PTABLE_ID
    --puppet-ca-proxy-id PUPPET_CA_PROXY_ID
    --puppet-proxy-id PUPPET_PROXY_ID
    --puppetclass-ids PUPPETCLASS_IDS Comma separated list of values.
    --realm REALM_NAME            Name to search by
    --realm-id REALM_ID           May be numerical id or realm name
    --subnet SUBNET_NAME          Subnet name
    --subnet-id SUBNET_ID
    -h, --help                    print help
```
Added more methods to CLI smoke test suite.

As per feedback I received via email, I have updated the existing CLI
smoke test to include the creation of ``Foreman`` artifacts. A further
tweak will be added to make sure that all artifacts are properly
associated with each other in an upcoming pull request.
Fixing help text to avoid markdown conflict.
One more tweak to resolve formatting issue.
Merge pull request #1063 from omaciel/more-smoke

More smoke
Merge remote-tracking branch 'upstream/master'