Don't make assumptions on chars.

Previously, the assumption was the the first 10 characters of $chars
were caseless (digits), and the remaining were in upper case. While
this is true of the default, no such assumption can be made for what
is passed through with -chars.

So we now always lower/upper case the (entire) string, and combine the
two in the case of -case => 'mixed', with duplicates removed.