Fixed #26 -- Made Twilio gateway fully optional
Released 0.4.0
Fixed #27 -- South migrations to support custom user model
Allowing redirect urls to be customized by subclasses
Fixed #29 -- Generate the QR code locally

I'm doing this for two reasons:
 1. I don't want Google seeing the secret keys to all my tokens.
 2. The Google QR code chart is deprecated. See: https://developers.google.com/chart/infographics/
Prepare for upcoming 0.5.0 release
Workaround for PEP8 validation of E123
Fixed #30 -- Don't transmit token seed through GET parameters

* Allows overriding the QR Image factory.
  This way if PIL/pillow is available PNG images can be used, etc.
* Make the QRCode Factory configurable with TWO_FACTOR_QR_FACTORY.
  This allows users with PIL/Pillow or pyimaging installed to generate PNG
  images instead.
* Don't send the secret key via GET so it doesn't show in the access logs.
Updated release notes
Make the auth method label capitalization more consistent.

The authentication method labels ("Token generator", "Text Message", and
"Phone Call") have inconsistent capitalization. "Token generator" is
generally more correct, as it's going to appear in user-facing lists,
which are usually using sentence-casing.

"Text Message" and "Phone Call" have been changed to use sentence-casing
to match.
Make the "Back to profile" label consistent with other buttons.

The "Back to profile" button label has been changed to "Back to Profile"
in order to be consistent with other button title casings. Title Casing
is fairly standard for most button labels, except when in
full question/sentence format, and is a good fit for most sites. This
was the only button label not asking a question that wasn't consistent.
Set an error code for phone_number_validator.

phone_number_validator works well when validating from a model, but not
so well when validating from a form field. It uses the default code of
"invalid," which the Django fields will map to a pre-defined error
message, ignoring the custom one given by the validator.

By setting a custom error code, this mapping won't happen, and the
validator's message will instead be used.

Unit tests were added to test the validator on a custom form (where the
problem appears), and on PhoneSetupView (where it does not, but the test
will ensure it never breaks without noticing).
Updated translations
Pushed version to 0.5.0
Update installation instructions.

`django-otp` requires OTPMiddleware in your MIDDLEWARE_CLASSES
to work properly. This prepares the `User.is_verified` function.
Removed unicode prefix for Python 3.2
Add Django 1.7 to supported versions, update tox.ini and .travis.yml.
SortedDict is deprecated, switch to OrderedDict API usage.
Validation error must not have an error_dict when raised within clean_<field>

We are raising a ValidationError inside clean_token, so setting the
error field to 'token' is redundant.
Avoid hitting multiple redirect in admin site.

Admin in 1.7 features a proper redirect to login
handling introduced in django/django@be0ad62994a340ad54a0b328771931932a45a899