New features. Code refactor

Features:
 - Focus text box when window is focused (using SetFocus())
 - Ctrl-A inside text box selects all texts (using a thread-wide hook)
Refactor:
 - Move window class registration, window creation, get client metrics,
   editbox creation into their respective functions. These functions
   return the same set of constants
 - Change to the more traditional one line '{' style
 - alert() function for easy debugging and error notification

A list of incomplete TODOs are added at the top of the file