Restructure charset table and add charset_all

This adds a charset covering all the ascii charsets commonly usable in
passwords. It also restructures the character set so that we can memcpy
entire blocks of strings at a time.
Use two-letter string prefixes

This switches from using a one-letter string prefix to using a two-letter
string prefix. This has three effects:
 - The minimum string length is now 3
 - The performance of large charsets is slightly decreased
 - The performance of small charsets is significantly improved

The performance decreases to long charsets is offset with other performance
improvements to the charset rebuild function.