Disable W0142 'Used * or ** magic' in the Pylint configuration

Change-Id: I24de97be60df7a47d4b62ca5591cff489d6ecde6
Initial implementation of Gerrit REST API interface

This initial version implements wrappers for GET, PUT, POST
and DELETE requests.

Authentication is not implemented. All requests are sent
anonymously.

Handling of error responses is not implemented.

This change introduces a dependency on python-requests.

Change-Id: I579f9f02be8afbb4e720daf97ca873d77cd54a77
Add support for HTTP digest authentication

If the username and password are given, pass them to the
request with HTTP digest authentication.

Change-Id: If15628262a4ef6b370c3d0794dbc9ecd3a0be624
Add handling of HTTP error status codes in responses

Change-Id: I9cdb6b7ff2bf6ea20925c5b2eac68ef454a6ea23
Fix authentication setup

Change-Id: I8a7557818cd3c207035ef627e6912ee945c083c6
Make get, put, post and delete REST methods public

The initial intention was for these to only be used internally,
and add wrapper methods to be used by clients.

Instead, we now make them public, allowing the API to be used
as a basic REST client before any wrappers are added.

Change-Id: Icfa92125466b9b798ac30fb865d2d15a2892f552
Merge branch 'master' into internal

* master:
  Bump version to 0.1.1
  Add changelog
  Fix #10: Allow to manually specify ssh username and port
  Completely refactor the stream event handling
  Add missing __repr__ methods on ErrorEvent and UnhandledEvent
  Fix initialisation of error event
  Fix #11: correct handling of `identityfile` in the ssh config
  Allow example script to continue if errors are received
  Fix #9: Add a bit more detail in the documentation
  Fix #8: Support the "topic-changed" stream event
  Fix #7: Support the "reviewer-added" stream event
  Fix #6: Support the "merge-failed" stream event
  Fix #5: Move json parsing and error handling into the event factory
  Improved logging in the example script
  Fix #3: Don't treat unhandled event types as errors
  Fix #4: Keep event's raw json data in the event object
  Add __repr__ methods on event and model classes
  Remove redundant `exec_command` method
  Fix #2: Establish SSH connection in a thread-safe way
  Fix #1: Use select.select() instead of select.poll()

Change-Id: Ib91384b16acca30bfc5aadcdc1131c8bdecef583
Add method to build url from endpoint

Add a convenience method to construct the url to be passed to the
server, from the base url and the given endpoint.

Change-Id: I1725a371aa8a82c132039a9614bf20223af591f3
Add MANIFEST to .gitignore

Change-Id: Ic249ed9de7987d154b575a23856e840796763cfb
Refactor the authentication handling

Instead of trying to abstract the authentication away from the client,
allow the client to provide the authentication handler.

Implement simple handlers for HTTP basic and digest authentication with
credentials from netrc.

Change-Id: Icd6c7d359ecbd441308bc6f67fd19c7f55ebcb8f
Add REST API example

Add an exmaple script to demonstrate usage of the REST API client.

Change-Id: I4a181c3f10e438e0f119b86584771a422bfbd6eb
Allow client to disable SSL certificate verification

Change-Id: I124054f2ba667f41ba5e916e3832e6a341b4ae96
Add support for Kerberos authentication in example script

Add a --kerberos-auth option that can be used to enable kerberos
authentication.

The option is only present if the HTTPKerberosAuth handler can be
successfully imported the from requests_kerberos module.

Change-Id: Id6c2beca1bf76fbe01f7a6aa8dfccc5844269454
Update the README notes about ssh configuration

Since commit 730b6b8bc3697f4294edbf3b73cec47b64c625c0 it is not
mandatory to specify the ssh connection parameters in the user's
.ssh/config file.

Update the README file accordingly.

Refs #10

Change-Id: I505c90ee949ba6729baa9fed1e898fe7ed43879f
Add more detailed examples of SSH interface usage in the README

Refs #9

Change-Id: I335782f5b3126ee00ba8fbe43372c02e7506eb35
Avoid busy loop when receiving incoming stream data.

Checking whether bytes are available is a non-blocking operation,
causing the receive loop to become a busy loop.
Update the README to mention the REST API

Change-Id: I0db09e7c7eb1fd9fd49bd70371b09a9c61326c35
Return sortKey from query result, to allow resuming query.

This is required to be able to retrieve more than 500 changes using the query interface.
Reason is optional in abandon and restore changes
Ensure errors in json parsing doesn't leave everything in a broken state