Caret improved, IsReplaceModeChanged event added

Original caret had selectable color, however when blinking was enabled and achieved with Win32 caret, the caret color was negated instead of cleared which looked really ugly when the CaretColor was set to any color except black or white.

I introduced caret blinking with a timer which interval is taken from Win32 Caret setting.

What's important, whenever caret is moved, it's visibility during the movement is ensured. If I skipped this step, the caret would blink during movement making the user lost and confused.

System Win32 caret behaves the same way. The only difference is my custom caret can have its color set.

Another change is the overwrite caret has different shape, like thicker underscore - not to cover the text. This looks identical in Scintilla.

I also introduced IsReplacedModeChanged event, to allow user application react to this editor state change.