[#2750] Add ckanext/example_idatasetform
[#2750] Improve IDatasetForm docstrings

- Rewrite the IDatasetForm docstrings to make them clearer,
  and conform to PEP257
- Reorder methods in IDatasetForm and DefaultDatasetForm
  so that they're 1. in a more logical order and 2. in the
  same order as eachother
- Tell autodoc to put the methods in source-code order,
  not alphabetical, in the sphinx docs
- Remove docstrings from DefaultDatasetForm that are
  exact repeats of corresponding docstrings in IDatasetForm
- Add edit_template() to IDatasetForm, it was missing

db_to_form_schema_options() and form_to_db_schema_options() and some
other schema methods in DefaultDatasetForm are still missing from
IDatasetForm but I'm leaving it that way for now, consider them
unofficial.
[#2750] Delete 'Customizing Forms' docs

They are out of date, and we have ckanext/example_idatasetform instead
now.
[#2750] Rewrite tag vocabularies docs

Change the tag vocabularies docs to refer to the working example in
ckanext/example_idatasetform instead of providing their own detailed
instructions.

Also add some more general explanation at the start about what tag
vocabularies are for/why you might want to use them/what you can do with
them, it was all a bit mysterious.

Remove some false claims from the Properties section, I don't think that
the restricted/free vocabulary types are implemented (they are either
always restricted or always free, can't remember), vocabularies do not
have descriptions.
[#602] Deprecate IDatasetForm's check_data_dict

With the new three-stage dataset creation form in CKAN 2.0
check_data_dict() no longer works as intended. For example,
DefaultDatasetForm's check_data_dict() breaks any IDatasetForm plugins
that are trying to use convert_to_extras() (if they inherit from
DefaultDatasetForm).

Remove the method from IDatasetForm and DefaultDatasetForm, but still
call the method in all the places it would previously have been called
_if_ the active IDatasetForm plugin has the method.

Also remove three tests that seem to be testing check_data_dict()'s
behaviours.

Note that in the existing code, check_data_dict() seems to be called
twice when creating a package, once by the package controller and once
by package_create(), and the two are inconsistent in the number of
params they expect check_data_dict() to take! On updating a package it's
called just once, by package_update(). I have preserved these "legacy"
behaviours.

Also note that IGroupForm and IOrganizationForm still have
check_data_dict() methods, we probably want to get rid of them in the
future as well.
Merge branch 'master' of github.com:okfn/ckan into example_idatasetform_without_tests_second_try

Conflicts:
	doc/tag-vocabularies.rst
[#2750] Add DefaultDatasetForm to plugins toolkit

At DefaultDatasetForm to the plugins toolkit. This means that
IDatasetForm plugins based on DefaultDatasetForm no longer need to
import ckan.lib.plugins.

Also change ExampleIDatasetForm to no longer import ckan.lib.plugins.
[#2750] Use ITemplateHelpers not setup_template_variables()

In ExampleIDatasetForm use ITemplateHelpers not
setup_template_variables() to pass the list of available country codes
to the template. This greatly reduces the number of templates that need
to be overridden!
[#2750] Move create_country_codes() to a better place

Move example_idatasetform's create_country_codes() to a better place.
[#2750] Add setup_template_variables() back

Add setup_template_variables() back into ExampleIDatasetFormPlugin, just
counts how many times it gets called, for testing purposes.
[#2750] Use super()

Seems like the right thing to do
[#2750] Change an HTML comment into a Jinja comment
[#2750] Tweaks base package_metadata_fields.html and then {% ckan_extends %} from it.
[#2750] Simplify the template yet more
[#2750] Add custom_text_field back into example idatasetform templates

This field accidentally got removed from the templates in a previous
commit
[#2750] Remove 'free extras' from package form in example idatasetform

This is necessary to make convert_to/from_extras() work
Merge branch 'master' of github.com:okfn/ckan into example_idatasetform_without_tests_second_try
Merge branch 'example_idatasetform_without_tests_second_try'