Add support for custom user models in Django 1.5+

Fixes #6. This is backwards compatible with non-custom user models as well.

Minor additions:
- Fixed line length for pep with the normal standard being 120 (updated flake TravisCI config)
- Cleaned up files to meet PEP8 (mostly stuff that flake isn't picky about)
- Updated requirements-dev.txt to include requirements needs for proper module introspection / hinting while developing locally (i.e. get rid of PyCharm snags of missing packages)

The reason why I changed the line length is ``backends.py`` was throwing errors from flake (this is before I even submitted my PR).

Line 39-ish:
```
        try:
            if count > 1:
                # More then 1 OTP provided, using multi mode
                status = client.verify_multi(otp_list=otp,
                                             max_time_window=
                                             YUBICO_MULTI_TIMEOUT)
```

This area is was failing before the PR on line 43 with E251 (unexpected spaces around keyword). It doesn't like the carriage return after ``max_time_window=```

Changed it to this:

```
        try:
            if count > 1:
                # More then 1 OTP provided, using multi mode
                status = client.verify_multi(otp_list=otp,
                                             max_time_window=YUBICO_MULTI_TIMEOUT)
```

Fixes the E251 error, but then I get a E501 (line too long -- 83 characters).

Changed it to this:

```
        try:
            if count > 1:
                # More then 1 OTP provided, using multi mode
                status = client.verify_multi(otp_list=otp,
                                         max_time_window=YUBICO_MULTI_TIMEOUT)
```

I can under indent the ``max_time_window`` line to fixe E251, but then flake gives me E128 (continuation line under-indented for visual indent).

Change it to this:

```
        try:
            if count > 1:
                # More then 1 OTP provided, using multi mode
                status = client.verify_multi(
                    otp_list=otp,
                    max_time_window=YUBICO_MULTI_TIMEOUT)
```

Finally, flake doesn't complain.  That was a lot of effort to get it to work in flake and honestly it's kinda ugly.

Django project nicely ignores:

```
ignore=E123,E128,E265,E501,W601
```

Because in certain situations it makes sense to break those rules.

I'll make the change to the PR like you asked, but I think it would be nice if flake was a bit nicer to devs -- right now it's a bit overly eager IMHO.

Let me know what you'd like to do... I think adding in the list of ignores used by Django (and a bunch of other projects) is the most friendly and gives the decision to a dev to break one of those rules instead of sacrificing readability for the sake of a rule.