Decouple SearchReplaceEngine from DialogSearchReplace
Rewrite SearchReplaceEngine

Decouple it from the subtitles grid and do everything through the
project context instead.

Actually obey the "In Selection" option for things other than Replace
All.

Cut down on the amount of logic duplicated between Replace All and
normal find/replace.

Start searching from the current cursor position, rather than the last
found position.
Add option to skip comments in the find/replace dialog. Updates #683.
Add an option to skip override tags when searching. Closes #104.
Don't clear the body of \t tags when doing stuff to them
Clean up SearchReplaceEngine a bit
Use SearchReplaceEngine in DialogSelection
Make the tag parameter parsing more forgiving of malformed input
Add alpha support to the color picker. Closes #217.
Make ColourButton saner

Emit a separate event for when a color is picked rather than horribly
overloading the onclick event, and switch to a wxButton base since
wxBitmapButton no longer does anything useful.
Remove the now-pointless convenience overload of GetColorFromUser
Move the implementation of the color picker dialog into an anonymous namespace
Change PickerDirector to an enum class
Inline the bodies of the color picker controls

Scrolling between the declarations and definitions is annoying.
Use wxStaticBitmap for ColorPickerRecent
Hide the alpha controls when the alpha isn't used
Implement the "coloralpha" automation control type
Only add alpha tags if the user actually changes the alpha
Paste over the selected lines if the selection has multiple lines

This seems to be what most users expect, rather than pasting downwards
from the active line, and is what pre-3.0 versions did as long as the
selection was continuous (since it pasted over from the first selected
line rather than the active line).
Eliminate some unnecessary includes of subs_grid.h