Management commands and extra functionality

@vladimir-v-diaz , Could you please review this?

There are four files and settings is unimportant (commit 79ce450) so that makes three effective files for review. The management commands are the same thing, so reviewing only demote user -- which is more complicated -- and then skimming through promote_user is more than enough; hashers.py is the real deal here.

Also, @justquick , since this is a big enough patch/update, could you also give it check?

Consider adding more comments for why certain values are used.  For example, why is 12000 a good value for `iterations`?  Also, must iterations be fixed?  Can it go in SETTINGS?