A potential solution to #1963.
This commit does the following:
1. Moves the values for minimum and maximum password length into the
ClientAPI configuration struct.
2. Introduces a new struct representing the password complexity
requirements defined in dendrite-config.yml, with four options. Defaults
are compatible with what users probably expect out of synapse.
* Minimum length, default of 8
* Maximum length, default of 512
* Minimum number of symbols, default of 0
* Requiring mixed case toggle, default of false
3. Adds tests for the logic of validating passwords.
Signed-off-by: Devon Mizelle <dev@devon.so>