fix(mask): Masks containing maskable chars bleed

Masks containing maskable chars, such as letters and numbers, had a
chance to "bleed" into the unmasked value as reported in issue #494.
I've fixed this from happening with the caveat that potentially
maskable chars need at least a space somewhere between it and the
non-mask chars to work accurately.

Dragging a selection and deleting/replacing it can still cause
bleeding, but I can't think of any way to fix that. At least it's
enough of an edge-case to be acceptable, in my opinion.