Initial code commit of ESLog

* Partial implementation
* No tests passing
Cleaned up code to insert schemas.
tests: Fixed a logging test.

* Test was failing due to misconfiguration; corrected this.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Wrote a new schema test

* New test for converting the schema into a mapping.
* Minor code clarification in another schema test.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
context: Fixed failing schema tests

* Rewrote _build_mappings method.
* Fixed wrong parameter call in creating default mapping.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
Cleaned up directory structure.

* Put the main module in its own directory, testsuite in another and
  left unrelated stuff in the root directory.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
doc: Added missing docstrings to all ESLog module files

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
pylint: Cleaned up module code to remove all C volations

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
context: Fixed absolute imports

* Was missing absolute_import; added it.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
elasticsearch: Ported requests connection class to requests_futures

* Based heavily off the requests connection class in elasticsearch-py;
  have added appropriate copyright notices.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Created base ESLogTestCase unittest class

* Edited existing tests to use new abstract class.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Wrote some tests for async elasticsearch-py objects

* Testing indexing and bulk indexing.  Running queries in async is
  beyond our scope.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
elasticsearch: Made RequestsFuturesHttpConnection pass bulk index test

* Changed return type of perform_request.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
elasticsearch: Partial implementation of Transport class

* Created a Transport (sub)class to manage our async connections,
  since the standard Transport relies on synchronous returns.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Converted assert statements to unittest framework.

* Replaced assert x == y with self.assertEqual(x, y)

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Enable using our custom Transport class for async testing.

Signed-off-by: Joe MacMahon
elasticsearch: Fixed Transport and Connection class to pass tests.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Added a test suite for the Transport class

* Testing connection management (i.e. pruning dead connections.)

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
elasticsearch: Added callback functionality to perform_request

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>
tests: Updated async tests to wait for responses properly.

* Get the Future object using a callback with a closure, then block on
  them before running assertions.

Signed-off-by: Joe MacMahon <joe.macmahon@cern.ch>