Merge pull request #6 from Ichimonji10/requirements

Explicitly list out optional requirements
Make compatible with Python 2 and 3

Use Python 3 style print statements. Add `from __future__ import print_function`
for compatibility with Python 2.

Drop iniparse. It is a module which must be separately installed, it has not
received any updates since 2010, and the configparser module from the standard
library accomplishes the same end goal.

Drop the weird exception handling in the import section of
`katello_rapidnode.py`. It is redundant, as Python will throw an exception if a
module cannot be imported. It is also harder to read than normal imports, the
resultant errors provide less information than the standard error messages do
annoying to read, and it generally bothers me.

Both the Python 2 and Python 3 versions of flake8 and pylint now process
`katello_rapidnode.py` without producing any fatal errors.
WIP: Drop pylint:disable directives, refactor code

TODO: determine which commit fixed W0632. (git bisect)

Drop several `pylint:disable` directives:

* W0621 (redefining-name-from-outer-scope)
* W0632 (possible-unbalanced-tuple-unpacking-with-sequence)
* R0914 (too-many-local-variables)

Fix the the first issue. The second issue appears to no longer be an issue. The
third warning is still a legitimate issue, but uncommenting the warning
reinforces the fact that the code has design issues.

Wrap the module's business logic in an `if __name__ == '__main__'` conditional.
This prevents the functions in the module from executing when the module is
imported. This is a first step in making it possible to write side-effect-free
unit tests.