common function for writing pretty and git-friendly JSON files

Alphabetizes keys so they stay in the same order, which makes
comparison of different versions possible.
specify sha1 and role in entity.file()

because same file may be uploaded in multiple roles.
revise file.__init__, load_json, dump_json; keep fields in FIELDS

Instead of having certain fields like access_rel be exceptions
to the FILE_FIELDS rule, include them as hidden/uneditable fields.
This greatly simplifies instantiation and writing.

Revised file.__init__, base everything around the path_abs.
refactor tasks.py to work with refactored DDRFile
re-enable new-access-file link on file detail page
do something logical if file json is missing