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
Merge remote-tracking branch 'origin/master' into fixes-1364
Merge pull request #1370 from jaredpar/fixes-1364

Fixes 1364