First shot at ajax requests panel

This is a rebase+squash of the original commits by Tobias McNulty (@tobiasmcnulty),
taken from pull request django-debug-toolbar/django-debug-toolbar#253, with some
minor changes to resolve merge conflicts.
Storing toolbar DOM for AJAX requests in the cache instead of session
Handle lack of session middleware in Ajax panel so that existing tests pass again

Ajax panel requires session middleware (for session id),
but existing tests run without it. So the ones executing
panel.process_request were failing.

TODO: Panel probably shouldn't fall back to no-op silently just
like that, but rather throw an exception or return some diagnostic
information.
Tests for DebugToolbarMiddleware.process_response

Making incoming changes easier and safer.
Refactorization
Fixing AJAX request handling

DOM tree of a toolbar for AJAX requests was not stored on
the server.
Don't send js code again with the toolbar DOM for AJAX requests

Sending the whole jQuery and toolbar js code over and over again
doesn't really makes sense, plus:

- it makes debugging js code harder or impossible after toolbar
for first AJAX call is loaded
- in some situations it may require cleaning up callbacks

Changes to toolbar.js:
- actions from djdt.init that should be performed only once (during
initial page load) are moved to djdt.setup
- those that need to be performed with each toolbar reload stays
within djdt.init
- both djdt.setup and djdt.init are called on dom ready
- djdt.init is also called after receiving new toolbar DOM for one of
the AJAX requests selected in the Ajax panel
Ignore internal AJAX requests
Ajax panel: Allow to jump to initial (non-ajax) request
Cleanup
Exempt Ajax panel cache operations from tracking by Cache panel

Cache panel displays arguments that were sent to the cache methods
(they are rendered in the toolbar's template). And because Ajax
panel stores toolbar's templates in the cache (by calling cache.set)
this leads to a geometric grow in the amount of data being stored
as each subsequent template sent to the cache contains content of all the
templates stored previously (as rendered by the Cache panel).

This can quickly lead to template sizes in tens of megabytes after
only a handful of AJAX requests.

On top of that, that data isn't actually interesting from the debugging
point of view.
Highlight currently displayed request in the Ajax panel
Don't render list of requests for nothing

The list of requests that should be displayed in the Ajax
panel changes dynamically with each request. Toolbar's DOM
trees for the old requests shouldn't hold this list as it
may be obsolete by the time such a tree is loaded into the
browser (e.g. when going back to examine old request) and
up to date list is always fetched via Ajax call anyway.
Update toolbar.min.js
Merge branch 'ajax-panel' of git://github.com/zifot/django-debug-toolbar into zifot-ajax-panel

Conflicts:
	debug_toolbar/static/debug_toolbar/js/toolbar.min.js
	debug_toolbar/urls.py
	debug_toolbar/views.py
	tests/tests.py