Ensure page parameters are valid.

Fixes #2042 by ensuring that:

- Invalid numbers aren't passed through to logic layer or paginator
- There is a default should an invalid number is passed. Numbers less
  than 1 will raise a 400.

Adds a _get_page_number() to the BaseController for re-use in all the
subclasses.
[#2042] Move related tests to new_tests.
[#2042] Add extra test for completeness.
Merge pull request #2062 from ckan/2042-invalid-page-numbers

Ensure page parameters are valid.