Refactor Command IDs

Use an enum with proper C#-style names instead of ugly constants.

I wish the VSIX template wouldn't use that ugly convention.

Also contains misc other refactorings.