Extended functionality of CharacterSet tokentype

The CharacterSet tokentype can now handle "preceding forced
charactersets". This means, that you can pass an arbitrary number of
charactersets on construction (at least 1) and the token-parser will
read on character for each set but the last. The last set is used to
read until the character will not match into the set. This allows to
tokenize a symbol that may contain digits but not as the first
character, since this would indicate a number.

tokentype = CharacterSet(string.letters, string.letters + digits)