Begin rewriting as a WindowCommand

Now does this:
	1. Check state before running commands.
	2. Run commands
	3. Check difference (as changes) in change count
	4. Read Selection
	5. Run "undo" x changes
Refactor all of TextCommand into WindowCommand
Break _complete_thread into smaller methods
Simplify response_commands and request_commands.
Update default settings to include Merge Variables and better document commands
Prescan for overrides to allow overrides for all settings.