Substantial Tower CLI update.

This commit:

  - Rehashes settings entirely, making it more system aware and
    unifying it in multiple objects to account for the need for writes
    later.
  - Rehashes the API object, making it a much smaller class, wrapping
    `requests`.
  - Adds a pluggable architecture for resources and commands, built
    on top of `click`.
  - Adds resources for most major objects in Tower, allowing for CRUD actions.
  - Adds job monitoring and cancelation.