Initial commit for search mechanism.
Allowing for highlight of searched words.

This is just a hook into the existing mechanism to invert the fg
and bg of a range of words.
Changing the way messages are handled.

Previously, we did not TranslateMessage. This did not work well with
the newly added textbox on the main window. What happened was that
because the keyboard input was not put into the message queue, the
edit control never received anything. It wasn't until TranslateMessage
was added that the edit control was usable.

However, after TranslateMessage was added, any keys typed will result
in multiple characters sent to the screen. This change now returns
from all WM_KEYDOWN and WM_SYSKEYDOWN (also their UP variants) and
prevents further handling of the message. This allows the handling of
valid keyboard characters in WM_CHAR, thus it does not result in multiple
characters being sent to the screen.
Terminal gets focused when clicked.

Previously, when inside of text area, clicking on the terminal does
not give it focus. It now does :).
TranslateMessage fix earlier didn't work.

I had assumed that the code was not doing TranslateMessage when in
fact it does inside of win_key_down. This change reverts what was done
previously and now checks to see if the edit control has focus. If it
does, then execute TranslateMessage so that the message gets through
to the control.
Added hotkey support, proper painting, and did some cleaning.

The hotkey support now hooks into the Alt+F key. There was additional
subclassing of the edit control to get it to handle Alt+F and Escape
when it is focused. This means that the search box can now show/hide
at will :).

There is now proper painting support for the search control box. When
it is visible, its rectangle is clipped out of the update function. This
is necessary so that the textbox remains visible when the terminal is
in focus or being highlighted.

Some cleaning and refactoring of code.
Whoops, forgot to add these two files.

This just makes sure that the subclassing gets removed when mintty is
closed and where the code to actually properly paint the terminal lives.
Added comments and refactor code slightly.
Moved function that it went out of scope. Fix!
Reposition the search box on resize.

When a window gets resized, it needs to stick to the specified position
on the screen. This means that the refresh rectangle clip itself needs
to be updated with the new position as well.
A more intuitive Alt+F.

When the search box is displaying, the Alt+F when it is not active
will now focus on it. An escape/Alt + F from here will close it.
Turning text red when there are no results.

Now when searching, the text of the search color will turn red if
there are no results. It will remain black otherwise.
Allow scrolling to last result.

If a search has results, it will now automatically scroll to the last
result. Otherwise, it will scroll to the end.
Adding a different highlight for search.

Added configuration options for the search fg/bg color. These colors
are now used to highlight the text that matches the search query.
As a result, there's now an ATTR_SEARCH attribute for the characters.

Also fixed a small bug when hiding the search control and the terminal
does not scroll to the bottom.
Adding (shift)enter to search previous and next.

Now pressing the enter key in the search control box will bring you
to the previous result. Since we are going backward from the bottom
of the terminal up, each enter key will search upward into the
scrollback.

This additional behavior requires that the current search result that
is being centered in the screen have a different background to
differentiate itself from fellow results. Now, we have a third option
in the configuration to set the background color for the current
search result that is being centered on.
Preventing beeps on enters and escapes.

When the search control is in focus, pushing enter or escape will
result in a beep. This takes care of it. Also need to find out how
to prevent Alt+F from beeping.
Simplify the logic for meta keys in search box.

Before it was keeping state of the keys, but that is unnecessary
because we can check the key state using GetKeyState(). This reduced
a bit of code :).
Refactor to not allow to translate message on hokey.

This is necessary so that the hotkey (Alt + F) now no longer cause
a beep to sound when pushed while the search control box is active.
Adding a comment to clarify the reason in code.
Changing the current search highlight to orange.