support null/is_null sub-ops inside has/any ops

The code in `_sub_operator` was assuming that the sub-operator dictionary argument had a `val` key, but in the case of the `null` and `is_null` operators, there is no `val` key, so we use `get` and pass `None` to `_create_operation`.
Merge branch 'refs/heads/delete-404' into release-1.14.0.5
don't bother with count() if a limit has already been set

the constructed query for count below strips off any limit and offset, and if limit is specified without offset, it returns the whole count, not the limited count.
Merge branch 'refs/heads/fix-count-helper-pt-III' into newbase
allow disabling deep results per-request

originally by @johaness
allow fine grained control of relations included in output
bump to 1.current-upstream-version
support deep parameter in PUT/PATCH

follow up to d85b91e0d5d133ddb989d31ce98ae4f385d2432f and dc06ae4ae75994d354db8bbe62532bd04da0b5ac
search: joined load of all deep relations
limit joins to 3 levels
bump version number to Major.minor.revision.2
Raise exception for bad searches

... so that we can register an error handler in Flask to show
helpful response messages to API consumers
Support Python 3.3
bump version number to Major.minor.revision.3
Reraise `deep`-related json parsing exceptions as BadRequest
bump version number to Major.minor.revision.4
bump version number to Major.minor.revision.5
bump version number to Major.minor.revision.6
add `flat` parameter as opposite of `deep`
bump version number to Major.minor.revision.7