Fix #7484, checking for good binder names in Convert.

This includes a somewhat pedantic check against the code in Lexer.x
to make sure that TH accepts the same set of names that the lexer
does. Doing this unearthed a latent bug dealing with unicode identifiers
in OccName.
Test #1476 in th/T1476
Fix #1476 by making splice patterns work.

Unfortunately, splice patterns in brackets still do not work
because we don't run splices in brackets. Without running a pattern
splice, we can't know what variables it binds, so we're stuck.

This is still a substantial improvement, and it may be the best
we can do. Still must document new behavior.
Release notes for #1476, #7484.