Refactoring

 * Internal functions now have leading underscore
 * renaming:
  * account_name -> account
  * password_length -> length
  * bits_per_char -> char_width
  * generate_salt -> encode salt
   * to match the bcrypt function
 * Rewrote some documentation

calculate_char_width and threshold are probably both going to change.
It probably should be the percent difference between the overlap and
the total range, as that more-directly represents the evenness of the
algorithm. Also, in cases of hitting max_char_width, the most even
width found should be chosen, not max (under the new algorithm, they
may be the same value, further experimentation is needed).