Always reverse URLs instead of hardcoding them

- Use {% url 'url-name' %} in templates
- Use reverse('url-name') and redirect('url-name') in views
If a file has no hashes, show message.
Reformatted all templates, externalised most javascript

Made minor changes and corrections in the markup, but most changes are whitespace.
Fixed bug in directory detail view
Mention dependencies in README