Use IConfigurable plugin interface instead of pylons.config

The extension should not rely on knowledge about the underlying
web framework and should instead use the provided plugin
interface to do the job.
Add resource metadata fields to the resource form

Extend the resource form html form to include the budget specific
metadata fields. This does not work as it currently stands. For it
to work it needs an updated schema and some validation.
Add data files with input values for the resource metadata fields

Three out of the four metadata fields require restricted input
data:

* Currency
* Country
* Status

These need to come from data files to make parsing them and
creating the necessary tag vocabularies possible (and
translations).

This adds those three files to the data directory and updates the
schema file path accordingly.
Add validation schema for user input for the new metadata fields

We need to be able to validate user input so this adds a schema
validation (schema update and trigger of validation by making this
a fallback).
Status field should show status errors and not year errors.

Just a minor bug fix.
Show countries, currencies and statuses with a select field

We need to prefill the countries, currencies and statuses with
existing values and make those selectable from the user interface.
This will make it easier for user to use the right convention in
building a budget data package.
Change plugin interface to IResourceController

The IResourceModification plugin interface was merged into the
IResourceController plugin interface so this plugin needs to be
updated to use the IResourceController which also requires the
addition of the 'before_show' method.
Add validators for new resource fields

Each new field needs a validator to check if the input is correct
or not. Since these fields are optional the validators also need
to ignore (approve) the input when the isn't any value. Because of
that we need to reimplement the positive integer validator from
ckan core which fails (raises an exception) when there is no value.
Have show_package return the resource instead of doing nothing

Minor bug fix because the show_package method is expected to
return a resource dict instead of nothing.
Add Budget Data Package endpoint to resource_read

This adds a datapackage.json route at the resource_read endpoint,
thus turning the /dataset/{id}/resource/{resource_id}/ into a
budget data package (when applicable). The resource is saved along
with its schema and a few other computed data package settings
and then this endpoint will allow the budget data package to be
used, e.g. for integration with other systems e.g. OpenSpending.