added support for typeable URL in consent form (closes #29)

Removed password from the old consent URL (giving consent does not require password).
Also shortened the URL for the typeable version. This will be backward-compatible with the old clients (both URLs work). This will close #29.
@ben-jones, can you please review this?
It would be more readable if you used the ascii character set from the string module. Basically, string.digits is the ascii digits and string.ascii_lowercase is the lowercase set of ascii characters. You can access these after importing "string"

This would let you replace all of the code above with return "".join([random.choice(string.digits + string.ascii_lowercase) for _ in range(length)]). This will probably be too long for one line, so you will probably need to split it into two lines, but this is cleaner.