[441] Implements a simple cache for pre-calculated reports to store data

As we have several reports that take too long (for some records) to use in real-time
this data cache will provide a simple way for those data to be stored along with a
reference to which object it relates to, and a timestamp.

Writing to the cache simply required an object_id and a key to be provided with the value.
Retrieving the data written is done by providing the object_id and the key and the resulting
string and seconds since last write will be returned.

Provides a plugin interface to register functions that build cached reports

Modification to allow fetching only fresh data

Adds a new method to the plugin, and allows the paster command to accept
a comma separated list of report keys which are then passed to each plugin
to see if they can fulfill.

Removes some 2.7isms

Conflicts:
	ckan/lib/cli.py
	ckan/model/__init__.py
	setup.py
[441] Cleanup to make CLI more CLI-like and move json decoder

- Moves the JSONDecoder to its own file in json.py
- Changes the CLI to act more like the other commands, using first
  argument (list or generate) to determine what to do.