slightly better help on storage error page
write ddrlocal release and git commit info to json on save
link to collection.json on collection detail page
break off file views,forms,templates from entities
reorganize urls.py

- 'collection', 'entity' keywords not serving purpose, so removed.
- group URLs more logically
collection/entity.url function; use in templates
show collection titles in list
collection title in breadcrumbs if available
entity filemeta; DDRFile object

Entity['files'] (in JSON) is handled by the lower-level ddr-cmdln.
Rather than change all that stuff, added an Entity['filemeta'] dict
which will contain the label, status bits, and EXIF data.
The filemeta is connected to the files by their SHA1 hashes.

At the Python level, DDRLocalEntity.load_json constructs DDRFile
objects using the 'file' and 'filemeta' for each file, and attaches
them to the entity as a list.

URLs for files now use the file's SHA1 hash rather than
position in the Entity.files list.

NOTE: DDRLocalEntity.dump_json is likely broken by this change!