Registers in substitute expressions

Add support for using \=@x in substitute expressions where 'x' is a
register name

closes #1315
closes #1144
Add support for more character classes

Added support for \i, \k, \p, \f and their non-digit versions.

I did not add full support for the underlying options at this time.  If
there is sufficient demand I can add it later

closes #456