Action API is inconsistent

This pr is not supposed to make everything correct but to make it better that it is at the moment and refactor some code to a point from which we can do more refactoring.

---

What has changed so far:

* Many actions do not produce a server error any more if `limit` and `offset` is a negative integer or no integer at all. Also validation for other parameters. Kind of **breaking** because instead of a 500, you get a 409.
* `ParameterError` was removed in favour of `ValidationError` **breaking**
* `_get_or_bust` goes through the validation code (common code paths)
* `_get_or_bust` returns a list instead of a single string for a missing field (consistent with validate) **breaking**
* Updated docstrings
  * Datastore docs indicate optional parameters
* `current_package_list_with_resources` supports `offset`, `page` is deprecated
* Auto complete actions get consistent parameters, `q` is now required in all auto complete actions **breaking**, all actions support limit
* Added tests for changes
* `[package|resource]search` have proper parameter validation
* small fixes...

There are still many functions that have no proper validation. Often bad input is not tested and adding validation takes time because new validation definitions have to be written. 

One thing to discuss is whether we want to have basic validation for **all** action functions in `controllers/api` instead of in every single action. This would require a parameter schema for every action function.