Use Unicode char ranges when processing names

Fixes #13

Use \p{...} Unicode char ranges when processing names, which fixes names being
incorrectly split when they contain a non-[A-Z].

Moved splitting initials (AJ Bower) [A-Z] regexp above the line that lowercases
the initials, causing them to never be split (>6 year old bug).