OPLOG default settings
OPLOG configuration handling
Refactor for readability and simplicity
OPLOG schema is needed, and it is fixed.

The OPLOG endpoint needs a schema itself because otherwise we would end
up exposing the AUTH_FIELD when User-Restricted-Resource-Access is
enabled.
Change of mind on OPLOG functionality and configuration.

The design so far:

So now the oplog resource is always used to log deleted documents across
API-maintained collections. In time, this will allow to properly handle
If-Modified-Since requests.

However, oplog will also be capable of logging other methods (POST,
PATCH..) Also, the maintainer will be able to make a 'oplog endpoint'
available to clients. This will be a standard API endpoint (can be
configured with auth, url, etc.). Clients might use it to get
a comprehensive list of updates across all API endpoints since their
last visit.
OPLOG implementation
Revert "If-Modified-Since disabled on collection endpoints."

This reverts commit a505abfd96268ac5e7fce00255719cbbb1c7274d.

Conflicts:
	CHANGES
flake8 compliance (fix line too long)
docs: fix typos
Merge pull request #470 from maitai/develop

Fix flake8 long line & docs typos
Fire on_fetched for ?version=all
Test on_fetched events for versions
Add warning about ?version=diffs on_fetched events
Fire on_fetched events for ?version=all requests
Merge branch 'jenmontes-version_all_on_fetched' into develop
Sphinx formatting
Customizable query parameters.

QUERY_WHERE allows to customize the 'where' query parameter.
QUERY_SORT allows to customize the 'sort' query parameter.
QUERY_PAGE allows to customize the 'page' query parameter.
QUERY_MAX_RESULTS allows to customize the 'max_results' query parameter.
QUERY_PROJECTION allows to customize the 'projection' query parameter.
QUERY_EMBEDDED allows to customize the 'embedded' query parameter.

Use case:
https://stackoverflow.com/questions/26375341/in-python-eve-how-can-i-honor-size-query-parameter-as-an-alias-for-max-resul
py 1.4.25 added to dev-requirements
Read-only fields ignored on write if value doesn't change.

When some fields are set to read-only, it becomes very difficult to use the API
because the client has to ensure those fields are removed from the object
before to send it back for editing via PATCH. When new read-only
fields are introduced, it has good chance to break every clients already using
the API.

This fix ignores submitted read-only fields in PATCH if the submitted values
aren't changed compared to the stored document.

Closes #479
Add links and pagination for versioned requests

When document versioning is on, add `?version=<version_num>` to HATEOAS
`self` links. Also adds pagination links for `?version=all` and
`?version=diffs` requests when results exceed `QUERY_MAX_RESULTS`.

Partially addresses #475.