Handle '%' in Swift container names.

When a Swift container name contains '%', it breaks many URL
leading to "HTTP 400 Bad request" under Apache.
(Not reproducible with Django development server)

It is due to a Django bug in django.core.urlresolvers.reverse():
"urlresolvers.reverse() generates invalid URLs when an argument contains % character"
https://code.djangoproject.com/ticket/13260
This bug have been fixed in Django 1.6.

In the meanwhile, this patch handles '%' in URL thanks to
django.utils.http.urlquote()

Unit tests have been updated accordingly and
helper functions are now tested.

Change-Id: Ifbe781f66458df0bd013dc935f55ad0ac2c5ac61
Closes-Bug: #1231904
Merge "Handle '%' in Swift container names."