First stub of the new dataset type forms

Adds a 'harvest_source' dataset type that mimics the original harvest
source form.
It works against the 3022 branch on CKAN core.
Behind the scenes creation and updating of HarvestSource objects

Taking advantage of the new after_create/after_update extensions points,
the extension checks if the dataset type is harvest source and creates
or updates the corresponding HarvestSource object. When creating a new
one, it will use the same id as the dataset.
Various fixes for the harvest source dataset type forms

Add a db to form schema to show the fields stored in extras. Validate
the source url on the Package object.
Check if type property is actually there
Clean up schemas

Better naming, remove old ones, ignore __extras field
Update harvest source create and update logic functions

`harvest_source_create` and `harvest_source_update` now call
`package_create` and `package_update` respectively, making sure to
define a 'harvest_source' type. The returned dict uses the db_to_form
schema.
Fix config validator and add tests
Finish up create and edit forms, including breadcrumbs, links, etc
Fix links to harvest sources page
Add custom harvest sources search page
Add custom harvest source read page (provisional)
Fix old controller import
Script for creating harvest source datasets on old versions

The way we check whether datasets need to be created might need to be
improved.
Update harvest_source_show logic function
Move harvest source status function as a logic function

The status dict is added automatically to harvest source packages.
Note that the actual queries still need to be updated as they proabably
won't scale.
Update endpoints to receive the context object
Add after_show extension point

We hook into the package_show extension point in order to:

1. For harvest_source type datasets, add extra information about the
source, jobs, etc (calling harvest_source_show_status)
2. For normal datasets, check if they were harvested, and if so, add a
reference to the harvest object and harvest source.
Add extra information to the harvest source page

The status object gives extra information about the source and there is
a helper function to build the dataset list for this particular source.
TODO: Pager still needs fixing.
Add more elements to the harvest sources page (still provisional)
[#2] Update README link