[#1011] Fix a 500 to a 404

Catch Genshi TemplateNotFound errors when rendering the package read
page. This can happen if an IDatasetForm plugin returns a custom package
read template, e.g. 'read.html', but the user has requested the dataset
in RDF format and the plugin does not provide a corresponding 'read.rdf'
template. (CKAN will take the path to read.html, replace the filename
extension with rdf, try to render this non-existing template file, and
crash.)

Replace this crash with a proper 404.

Add to the IDatasetForm docs, explaining how to provide RDF templates
for datasets.

Fixes #1011.
[#1011] Refactor an exception raise and catch

Raise and catch a CKAN exception, instead of a Genshi one.
Merge branch 'master' of github.com:okfn/ckan into 1011-template-not-found
Merge branch 'master' of github.com:okfn/ckan into 1011-template-not-found

Conflicts:
	ckan/lib/base.py
[#1011] Fix a broken import in the package controller

An exception was not getting caught because of the way this import was
done.
[#1011] base.py: Explicitly re-raise TemplateNotFound

Functions should not implicitly raise exceptions by failing to catch
exceptions raised by functions that they call, they should explicitly
catch and re-raise the exceptions instead.
[#1011] Update some exception handling in template.py

Catch the new ckan.lib.render.TemplateNotFound exception that render()
now raises, not the Genshi exception it used to.
Merge branch '1011-template-not-found'