Commands: Make CommandTargetBase generic

Get the group GUID from the enum type.
This helps avoid casting, and ensures
that command groups always match.
Tests: Try sending TYPECHAR commands

Doesn't work yet
Tests: Fix keystroke injection

Test still doesn't pass; WE command target isn't registering.
Tests: Only inject keystrokes on ApplicationIdle

Wait for targets to be registered
Tests: Port ZenCoding to use VSHost.TypeString()

Tests are now more reliable.
Tests: Remove Task.Delay() calls
Merge pull request #585 from SLaks/command-fixes

Refactor commands & keystroke injection
Feature: Chain compile for LESS and SASS (#189).
* Menu item to add file in ignore list.
* Needs testing.