Addes the promote/demote management functions

These functions are oriented to allow admins to add or remove a user
from the threshold account pool. They also allow importing to use within
the code.
Changed the default threshold to 3
Adds extra functionalities for robustness.

This allows for creating users when the context is locked.

Extra safety checks are added with the new logger object when:
    * Partial verification passes when the context is locked and the
      whole hash fails upon recombination.

    * Partial verification passes but the whole hash doesn't match with
      an unlocked context

Also some tidying of the code was made.
Updates hasher object to use the pph cache by default
Fixes tests.py module to match the new behavior with locked context

The tests contained an assertRaises(Exception, ...) when creating a
thresholdless account with a locked context. In this version, this
doesn't happen as we are able to provide an "unsecure" hash until we are
unlocked.
Addresses issues encountered during the first round of code review
Wrong regex replacement hotfix!
README now links to the installation wiki.
Removes migration scripts
Added installation and usage instructions to the README
Refactored the promote user functions

The hasher object contains two new functions: promote_hash and demote
hash. These functions effectively turn the management functions into
thin wrappers that only seek for the username and ensure everything is
in its right place.

Test cases have been updated to consider these new two functions.
Fixes bug with wrong partial_verification

When using base64, the length of the partial bytes changes and will
always be a multiple of 4. This didn't allow for proper partial
verification.

For example, with two partial bytes, the resulting string for partial
verification will be of length 4; this will contain three bytes of data
and one byte for padding (i.e. xyz=).

Before this patch, the partial_bytes variable was used for partial
verification. This would mean that, for two partial_bytes, we would only
check half of the string. Worse than this, one of the two bytes checked
would be the padding byte (e.g. we were checking for z= instead of xyz).
Added the migrate_user command

Migrate user is a command that lets you turn an existing user account
with another hasher into a django_pph-hash.
Addes tests for update_hash_threshold and update_hash_thresholdless

These functions are in charge of facilitating the migration, promotion
and demotion methods. They are now thoroughly tested.
Added test case for secret creation and verification functions

The test case covers the hash combination issues and detection of both,
valid secrets and invalid secrets.
Merge pull request #2 from PolyPasswordHasher/management_commands_and_extra_functionality

Management commands and extra functionality