Merge pull request #3 from DotNetHack/griffin

Griffin
Added keyboard event loop and event hdlrs

- All widgets now get an id on creation.
- Keyboard input is done on it's own worker thread.
Added "invalidation" routine for console buffer.

- Added GUIProgressBarEventArgs and ProgressChanged event
- Added Window_KeyboardEvent for all "Window" widgets.
Added button widget

also working toward tab-index
added SetCursorPosition by point
addded SetCursorPosition by IHasLocation
MainWidget renamed MainWindow
Added new widget called "TextBox"
All widgets now have "Selectable" property
Added Show method for TextBox
Adding selectable textbox
backspace and reg input is invalidated.
Working through UI event sync and new widgets
Added WidgetSelectedEvent
Init no longer clears
Adding selection widget event
Finalized widget selection model
Added a new panel widget
Update & Add Window, MenuBar, ColorScheme
More work on menu bar
Corrected traversal bug where predicate wasnt being passed
Added "thrift" as a possible wire-protocol dep