Simplify function signatures with **kwargs.
More robust authentication.
Add link extractor class for use by clients.
Move authentication-related code into distinct class.
Add extract() method and XPathDataExtractor class.

- same signature as get() with addtional argument 'extractors'
- save extracted data as JSON files into a dedicated repository
- skip extraction if such a file is already present for a given request
Encapsulate code of extract() method in ExtractorIterator class.

- can be invoked recursively for pipeline extractors
- increases modularity through application of strategy pattern
Unit tests for ExtractorIterator and query processing.
Test case for XPathLinkExtractor.
Event-based spider framework.

- can be configured through calls to event handler initializers (with
URL patterns and action objects as arguments) or by subclassing
- events covered by event/subscription types: initialization, response,
extraction request, extraction
- action types: MethodActionDecorator, ExtractorActionDecorator,
ExtractedUrlInjectorActionDecorator

Refactoring:
- Extractors now have a superclass Processor and only accept a response
string as argument
- processors of data dictionaries are represented by a distinct class
DataProcessor which is also a subclass of Processor
- ExtractorIterator -> ProcessorIterator