Fixed: :tablast was implemented as :tabfirst

Also added missing unit tests. This fixes #1172.
Merge pull request #1473 from Kazark/master

Fixed: :tablast was implemented as :tabfirst
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
Add newline replacement support

closes #706
Add test for certain character classes

These features were implemented a while ago but it doesn't appear the
tests were added for it.  Fixing that

closes #1238
Rename group to collection

Changed the terminology around [] from group to collection.  This is the
more common vim terminology and removes the ambiguity with capture
groups.
Initial named collection support

Can't finish on this machine because debugger is crashing.  Moving to a
new machine where I can get some debugging done
Fleshed out the collection names table
Merge pull request #1480 from jaredpar/fixes-848

Fixes 848
Centralized character codes
Don't track selection to mouse in exclusive mode

The selection should not extend to the mouse when the selection mode is
exclusive.
Simple file comment fix