Refactor Exception raising

* Refactor the `handle_status_code` function to allow for future actions
  on raise conditions.

* Log AICExceptions prior to calling `handle_status_code`
Refactor connection retry handling

* Allow passing in additional kwargs to `CoreLib` objects, passing them
  to the underlying `Connection` object.

* Refactor `Connection.request` to retry without a loop in itself

* Add configurable `retries` and `backoff` to `Connection.request` for
  retry attempt management and exponential backoff control.

* Log NVP Timeouts to facilitate troubleshooting
Merge pull request #29 from jkoelker/configurable_retries

Configurable retries and Logging