Update to ext-js 3.4.0

Clean upgrade to 3.4.0 with no real changes involved. Replaced full
extjs install with a trimdown of only the essential. Moved from the
examples/ directory are ux/DataViewTransition.js and the fam icon set
added fallback to cairocffi if pycairo is not installed. cairocffi is installable through pip
fixing change graph via django admin interface.

With Django 1.4 installed, if I try to edit a saved graph via admin interface I get Exception.

Most probably this is the case: https://code.djangoproject.com/ticket/17971

The fix is easy: add required class to MIDDLEWARE_CLASSES explicitly.

-------
Environment:


Request Method: POST
Request URL: http://192.168.97.126/admin/account/mygraph/4/

Django Version: 1.4.1
Python Version: 2.7.3
Installed Applications:
('graphite.metrics',
 'graphite.render',
 'graphite.cli',
 'graphite.browser',
 'graphite.composer',
 'graphite.account',
 'graphite.dashboard',
 'graphite.whitelist',
 'graphite.events',
 'django.contrib.auth',
 'django.contrib.sessions',
 'django.contrib.admin',
 'django.contrib.contenttypes',
 'tagging')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.gzip.GZipMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/options.py" in wrapper
  366.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
  91.                     response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
  89.         response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in inner
  196.             return view(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper
  25.             return bound_func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
  91.                     response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func
  21.                 return func(self, *args2, **kwargs2)
File "/usr/lib/python2.7/dist-packages/django/db/transaction.py" in inner
  209.                 return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/options.py" in change_view
  1058.                 return self.response_change(request, new_object)
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/options.py" in response_change
  842.             self.message_user(request, msg)
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/options.py" in message_user
  696.         messages.info(request, message)
File "/usr/lib/python2.7/dist-packages/django/contrib/messages/api.py" in info
  78.                 fail_silently=fail_silently)
File "/usr/lib/python2.7/dist-packages/django/contrib/messages/api.py" in add_message
  22.         raise MessageFailure('You cannot add messages without installing '

Exception Type: MessageFailure at /admin/account/mygraph/4/
Exception Value: You cannot add messages without installing django.contrib.messages.middleware.MessageMiddleware
---------
Merge pull request #345 from anatolijd/master

editing a saved graph via admin interface does not work with Django 1.4.
Merge pull request #280 from mleinart/extjs_3_4

Update to ext-js 3.4.0
add www.douban.com to who-is-using
Merge pull request #341 from anotherthomas/master

Fall back to cairocffi if pycairo is not installed
add new function offsetToZero
more documentation and an example for offsetToZero
add graphite-observer to tools.rst
Merge pull request #347 from mprovost/master

new function offsetToZero
Merge pull request #348 from huoxy/master

add graphite-observer to tools.rst
update urls for structured_metrics and graph-explorer
adding local_settings.py* to .gitignore
Merge pull request #352 from g76r/master

.gitignore for local_settings
Merge pull request #350 from vimeo/tools

update urls for structured_metrics and graph-explorer
add sortByTotal function
test for sortByTotal
Merge pull request #358 from mattus/sortbytotal

add sortByTotal function
added Graphite-Newrelic to tools documentation

Graphite-Newrelic is a plugin to the New Relic Platform
that allows reporting graphite data into New Relic.