really rough pass at celery notifications

- Create a task dict on file upload, with start time, and other
  info.  This info is probably available from the celery task
  object.
- Save tasks list to session.
- In context_processor, get list of tasks from session.
- Display in base template.
key for storing requested URL in cache before auth/storage login
use redirect URL session key from settings for storage redirects

In the case of needing to mount storage, use this key to store
the URL the user was requesting when storage was unavailable.
mv remount URI link higher in the page so it's actually useful
enable redirect after login

Go back to page user was requesting when login was required
redirect after logout; better edit URIs; better logout messaging

- Include outgoing username in logout message.
- Append redirect URL to logout links.
- Modified most edit view URIs (some are no longer used) so that
  splitting on 'edit' or other keyword can result in a public URL.
  This should prevent looping, in which user logs out but is sent to
  a login-required page.
lay some groundwork for celery tasks reporting
mv celery_tasks session info from contextproc to tasks

- The function for getting session info for celery tasks was
  in webui.context_processors. This was moved to webui.tasks.
- Added task status and entity URL to task info from session.
  This info comes from the Celery API.
celery tasks status display page

Page for displaying status of celery tasks, with links to the
entities and files and stuff.
Tasks are in session, and they currently don't expire automatically
so included "dismiss" links.
display number of various statuses in base template

Display the various status with counts of how many items exist
for each status (SUCCESS, PENDING, FAILURE), with link to tasks
display page.
pass request object into template context
Merge branch 'master' into celery-notifications

Conflicts:
	ddrlocal/ddrlocal/templates/base.html
	ddrlocal/webui/templates/webui/entities/detail.html
keep task status msgs in one place; show statuses for diff actions

First implementation was pretty much hard-coded to only show
file uploads, and messages were constructed in the page template.
With this commit,
- Messages are collected in a dictionary
  by Celery action (ex: 'webui-file-new-master', 'git-sync')
  and by status ('PENDING', 'SUCCESS', 'FAILURE', etc).
- Message arguments are taken from the fields in the task dicts.
- Messages are formatted and then added to the task dicts, after
  which they can be displayed in templates, etc.
PENDING tasks can't be dismissed from tasks page list

Other status may also not be dismissable.
protect against key error
split celery tasks lister into separate function

- Celery tasks exist in session as a dict, but the sesstion_tasks
  function returned them as a list of dicts.  This was a little
  confusing so made it explicit.
- session_tasks_list() now arranges tasks in reverse chrono order.
- Added docstrings for inputs/outputs.