Move options to a different file

Move out the options to a different file.  Wanted to change around some
of the types and didn't want to keep duplicating it between a signature
and implementation file
Renamed ReplaceData -> VimRegexReplaceData

This naming is more consistent with the rest of the Vim regex space
Refactor replace test
Progress on redoing replace

In order to support issues like #455 the replacement engine needs to be
rewritten.  The old code essentially translated into a .Net replacement
string.  This works but is insufficient for doing full vim style
replacements.  Have to start it from scratch
Got the old tests passing
Got \u, \l, \U and \L implemented

The basics are working for #455.  Still need to do some cleanup on the
code base including removing a bit of dead code from the old replace
logic
API cleanup
Couple more tests
Merge pull request #1478 from jaredpar/fixes-455

Fixes 455