Code consistency fix
Refactor the testing logic
Made incremental cancellable

This still needs to be reworked a bit though.  Even though it can be
cancelled previous sessions can still control search by using the
previously returned BindData.  Need to cut that off completely so that
once cancelled the data is completely separate
Cancel is now complete

Previous sessions can no longer interfere with newer ones
Merge remote-tracking branch 'origin/master' into fixes-1364
Cancel incremental search on mode change

closes #1364
Fixed a test failure

The incremental search change took a dependency on a new VS service
(SVsFindManager).  The memory leak test wasn't properly updated to
export this dependency and hence the tests started failing
Merge remote-tracking branch 'origin/master' into fixes-1364
Merge pull request #1370 from jaredpar/fixes-1364

Fixes 1364
Added the softtabstop setting
First round of tab settings tests

Many more to come.  So far focused on those which don't involve 'sts'
Completed the initial 'softtabstop' tests
Completed insert portion of 'softtabstop'

The insert portion is now complete and passing the designed tests.  May
want to add some more tests later but want to switch focus to getting
the delete portion working.  Once both are working I will begin
dogfooding the changes and author more tests around the feature
Changed GetBackspacingPoint to provide more data

Previously the GetBackspacingPoint function would return simply the
point to which a backspace operation should delete.  In order to
implement 'softabstop' this function needs to provide more information.
A backspace with 'softtabstop' is very possibly a delete + an insert
operation.  Classic case is the following

1. Settings ts=8, sts=4, noet
2. Go to a blank line in insert mode and type <Tab><Tab>.  This will
result in a single \t character being inserted into the file
3. Type <BS> and the result will be 4 spaces on the line.

In that case 'sts' overrides 'noexpandtab' and splits the tab.  The only
logical way to represent this is as a replace operation.

This change simply updates the API to allow for the possibility of the
replace.  I wanted to separate out this change to make sure it didn't
interfere with the existing tests around 'backspace'
'sts' and backspace now working

The interaction between backspace and 'sts' is now working for the key
scenarios.

This change though did break the interaction with backspacing over the
start.  I need to rework that interaction interaction between InsertMode
and InsertUtil (in particular how it affects repeat and delete which
crosses start).  Temporarily disabled the tests.  Next check-in will be
re-enabling them and fixing the interaction
Minor test reorg
Couple more unit tests
Couple more unit tests

Experimentally found some more interesting cases around typing 'sts' and
'backspace'.  In particular

- typing <Space> will disable 'sts' for the current line edit
- typing <CR> does not change the start point of an edit
Fix the handling of 'backspace' and start option

This fixes the handling of the 'backspace' setting and the start option.

Unfortunately though this revealed a flaw in our edit repeat
architecture.  The edit repeat code depends on translating InsertCommand
operations into flat TextChange values.  In general this works fine but
not for backspace repeats.  The reason is that backspace actively
reexamines the 'backspace' setting every time it runs.  Hence the repeat
can't be flat text change, it's a semantic operation.  For now disabled
the involved tests, need to rethink this feature in light of the new
data.
Renamed to InsertStartPoint

InsertStartPoint is a more descriptive moniker for this property as it
is only used this way.  First step to getting the space + tab typing
fixes in