Improve spelling correction

Handles special cases:
- word is punctuation character
- word is numerical
- word is a one-letter, uppercased word (e.g. 'I')

In these cases, returns the original word with a confidence of 1.0

These changes were implemented in the `pattern.text.Spelling.suggest` and `pattern.en.suggest` functions.