Designate some dependencies as optional

Split `requirements.txt` into two files:

* requirements.txt
* requirements-optional.txt
Merge pull request #871 from Ichimonji10/requirements

Designate some dependencies as optional
Deduplicate and rewrite documentation

The readme file is essentially duplicated. Highly similar content exists at both
`README.md` and `docs/index.rst`. This is problematic: it's hard to maintain two
copies of similar documentation. This makes it easy for errors to creep in, and
demotivates developers from writing documentation. Additionally, the
documentation in the readme could use more polish.

This commit contains the following changes:

* Delete README.md, and create a sylink pointing from README.rst to
  docs/index.rst.
* Rewrite docs/index.rst. Make it include the information formerly provided
  by README.md, add a link to the docs/createtest.rst file, and generally
  rewrite the file for easier reading.
Remove outdated documentation
Merge pull request #869 from Ichimonji10/docs

Docs
Add API information to documentation

Add a recipe to docs/Makefile. The recipe, "genapidocs", generates API
documentation directly from source code. Make "genapidocs" a dependency of every
other documentation generation command. Make the main documentaion page,
docs/index.rst, point to the API docs.

foo
Merge pull request #872 from Ichimonji10/apidocs

Add API information to documentation
Add script for linting application with Pylint

Also update the documentation with instructions for using the script.
Remove useless pylint config file

The Pylint config file is useless for several reasons:

1. It is unused by `lint.py`.
2. It does not set any especially useful or interesting options. In fact, it
   sets options in a way that are actively harmful. For example: disabling all
   warnings!
3. Inline Pylint directives (e.g. `pylint: disable=W0262`) are likely to be
   sufficient for customizing the behaviour of Pylint.
Merge pull request #873 from Ichimonji10/pylint

Pylint
Remove unused make file.

Stale code is bad. If a `make.bat` file exists in a project, it indicates that
the project is compatible with Windows. That is likely not true in the case of
Robottelo, leading to false expectations.
Merge pull request #874 from Ichimonji10/stale-code

Remove unused make file.
Updating CLI tests for content hosts.

Updated the factory method for CLI content hosts to included new
arguments and validation. Also, updated all tests and added a few more,
some of them to test a few bugzilla issues:

```bash
$ nosetests -c robottelo.properties tests/foreman/cli/test_contenthost.py
2014-06-10 10:55:35 - robottelo - INFO - Paramiko instance prepared (and would be reused): 0x104bcaa10
2014-06-10 10:55:37 - root - DEBUG - #1107319 NEW        - Adam Price - hammer content-view info does not filter by organization
2014-06-10 10:55:38 - root - DEBUG - #1105623 NEW        - David Davis - hammer: 500 ISE when creating a content-host
2014-06-10 10:55:38 - root - DEBUG - #1105623 NEW        - David Davis - hammer: 500 ISE when creating a content-host
@Test: Check if content host can be created with random long names ... ok
@Test: Check if content host can be created with random names ... ok
@Test: Check if content host can be created with random description ... ok
@Test: Check if content host can be created with organization name ... ok
@Test: Check if content host can be created with organization label ... ok
@Test: Check if content host can be created with content view name ... ok
@Test: Check if content host can be created with lifecycle name ... SKIP: Test skipped due to #1107319 NEW        - Adam Price - hammer content-view info does not filter by organization
@Test: Check if content host can be created with new lifecycle ... SKIP: Test skipped due to #1105623 NEW        - David Davis - hammer: 500 ISE when creating a content-host
@Test: Check if content host can be created with new content view ... SKIP: Test skipped due to #1105623 NEW        - David Davis - hammer: 500 ISE when creating a content-host
@Test: Check if content host can be created and deleted ... ok
@Test: Check if content host name can be updated ... ok
@Test: Check if content host description can be updated ... ok

----------------------------------------------------------------------
XML: foreman-results.xml
----------------------------------------------------------------------
Ran 12 tests in 172.001s

OK (SKIP=3)
```
Re-aligning data passed via dictionaries.
Merge pull request #875 from omaciel/more-content-host-cli

Updating CLI tests for content hosts.
Updated test to be blocked on Bugzilla issue.

We had a CLI gpg test for Redmine #4480 which is now broken due to
Bugzilla #1108227, so I'm updating the existing test to reflect this new
blocker.
Merge pull request #878 from omaciel/update_gpg_cli_test

Updated test to be blocked on Bugzilla issue.
Update module-level documentation

Add high-level documentation explaining the layout of the codebase.
Increasing the timeout for CLI commands.

Increased the timeout for a CLI command from 60 to 120 seconds to see if
we can get rid of some false negative tests.
Merge pull request #880 from omaciel/longer-cli-timeout

Increasing the timeout for CLI commands.