[#649] Rename default_package_schema() -> _base_package_schema()

Also add a docstring.

This schema seems to be a base schema for other package schemas to be
based on, and a private helper function of schema.py. It's not used
outside of schema.py apart from by some tests that probably should not
be using it. The new name hopefully makes it clearer what the purpose of
this function is.
[#649] Deprecate package_form_schema() properly

I think package_form_schema() was probably deprecated using a code
comment before we had the Right Way of deprecating things (using the
deprecated decorator).
[#649] Don't validate package dicts in package controller

The package_*() action functions handle fetching package schemas and
using them to validate package dicts, no need to also do it in the
package controller!
[#649] Delete package_create_validate()

Delete package_create_validate() action function.

This function has no docstring and no tests, and duplicates package dict
validation code in package_create().
[#649] Delete package_update_validate()

Delete package_update_validate() action function.

This function has no docstring and no tests, and duplicates package dict
validation code in package_update().
[#649] Refactor form_to_db_schema()

Replace form_to_db_schema(), form_to_db_schema_options(),
form_to_db_schema_api_create(), form_to_db_schema_api_update(),
form_to_db_package_schema() with just two schemas: create and update.
Then get the tests passing.

schema.py:

- Delete _base_package_schema()
- Delete already deprecated package_form_schema()
- Delete form_to_db_package_schema()
- Tweak default_create_package_schema() and
  default_update_package_schema() to get tests passing

DefaultDatasetForm:

- Delete form_to_db_schema_options()
- Delete form_to_db_schema()
- Delete form_to_db_schema_api_create()
- Delete form_to_db_schema_api_update()
- Add create_package_schema(), returns None
- Add update_package_schema(), returns None

Note that by deleting form_to_db_schema() and
form_to_db_schema_options(), _api_create() and _api_update(), we're
breaking backwards compatibility with any plugins that were using these.

package_create():
- Don't call form_to_db_schema_options() or form_to_db_schema().
- Instead call the package plugin's create_package_schema(), if that
  doesn't exist or if it returns None then call
  default_create_package_schema() instead

package_update():
- Don't call form_to_db_schema_options() or form_to_db_schema().
- Instead call the package plugin's update_package_schema(), if that
  doesn't exist or if it returns None then call
  default_update_package_schema() instead

Note that by no longer calling the form_to_db_schema_options() or
form_to_db_schema() methods of IDatasetForm plugins, we're breaking
backward compatibility with those plugins.

Note this makes IDatasetForm less flexible - plugins can return
different schemas for creating, updating or showing packages, but they
can no longer return different schemas depending on whether we're using
the API or web UI, or on other parameters from the Pylons context.

test_tag_vocab.py:

- Update MockVocabTagsPlugin to work with the new interface

Also update some other tests.
[#649] Rename db_to_form_package_schema() -> default_show_package_schema()

This makes the name consistent with default_create_package_schema() and
default_update_package_schema().
[#649] Get rid of form_to_db_schema_options()

package_show(): Don't call an IDatasetForm plugin's
db_to_form_schema_options() or db_to_form_schema() anymore, instead call
package_show_schema(), if the plugin doesn't have that method or if it
returns None then fall back on
ckan.logic.schema.default_package_show_schema(). (Same pattern as for
package_create() and package_update()).

Delete DefaultDatasetForm's db_to_form_schema_options() and
db_to_form_schema(), add show_package_schema() that just returns None,
same as create_package_schema() and update_package_schema().
Remove unused _check_data_dict() from package controller

This method is never called
[#649] Remove schema-related hacks from package controller

These hacks are no longer needed
Merge branch 'master' of github.com:okfn/ckan into idatasetform-package-schemas-simplification

Conflicts:
	ckan/controllers/package.py
	ckan/lib/plugins.py

At this point ckanext/example_idatasetform/ is broken by the recent #649
commits, will fix it in following commits...
[#649] Update example_idatasetform to new IDatasetForm interface

This imports ckan.logic.schema which is bad.
[#649] Make DefaultDatasetForm return default schemas

Make DefaultDatasetForm's create_package_schema(),
update_package_schema() and show_package_schema() methods return
default_create_package_schema(), default_update_package_schema() and
default_show_package_schema() from schema.py.

This makes it easier for plugins as they can just inherit from
DefaultDatasetForm and call super() to get the default schemas, they
don't need to import ckan.logic.schema to get them (or we don't need to
add the default schemas to the plugins toolkit).

This removes the logic, which was repeated in package_create(),
package_update() and package_show(), of getting the schema from the
plugin but if the plugin provided no schema then falling back on the default
one from schema.py. The action functions now simply get the schema from
plugin and always expect the plugin to provide the schema. The default
fallback behaviour is provided by plugins inheriting from
DefaultDatasetForm instead.
[#649] Update IDatasetForm docs