Handling indentation and matching parenthesis better

I wasn't adjusting the indent level accordingly when there was an
ending paren.  The logic isn't perfect, but tryin gto make it better.
Adding additional infrastructures

- Support for the ~ON~ keyword
- Logic for capitalization
- Logic to remove white adjacent whitespace
Minor Change

Making sure that variables like @var_name don't get capitalized
automatically.
Operator Cleanup

Adding some logic to make sure that the spacing around operators,
parens, and commas is consistent.  It's a little hacky, but it seems
to work for the most part.
Cursor Support

Making sure that cursors at least look ok..
WHILE / BEGIN / END

Adding the basic support for while loops.  Also making it so that
begin and end get indented properly.
Comments

Trying to add some better support for comments.
Adding a worker thread

Probably did this completely wrong, but I wanted to add a worker
thread so that the GUI wouldn't lock up for long SQL queries.
Adding a progress bar

Copied and example in order to implement a very simple progress
measurement.  It seems to work so far...