Implemented scroll logic for scrolloff

This change implements the logic to adjust the ITextView scroll based on
the 'scrolloff' setting.  It is not hooked up to any functionality yet.
This is the first step to completing issue #403
More tests

Added some extreme scenario tests case plus some tests for the adjust
over folded regions
Hookup 'scrolloff' to core movement commands

This change hooks up the scrolloff logic to the core movement commands.
This means they will all respect 'scrolloff' after changing the view.
There are likely several commands that I missed in this change as not
every command uses this APIs.  However it's largely working and I want
to dogfood it a bit while fixing up the other cases

More progress on #403
Fix scrolling top / bottom
First round of overload removal

With the support of 'scrolloff' the types of operations involved with
moving the caret / positioning the view simply has too many combinations
to support via overloads (expand text, visible caret, scrolloff, virtual
space).  Hence we are moving to a simpler API + an enumeration to
specify the necessary operations.  This is the first change along those
lines which fixes everything but the virtual space

Related to #403
Quick fix to incremental search
Renamed ViewFlags.All to ViewFlags.Standard
Removed the remaining overload

Now handling the VirtualEdit setting as well in the MoveToPoint method
Merge pull request #1173 from jaredpar/fixes-403

Implement 'scrolloff' setting