Add string tables, used for localization
Make the Console localizable (implement FR 1692653)

TODO: find out if Windows can provide us with the list, similar to
      http://www.loc.gov/standards/iso639-2/php/code_list.php.

TODO: find out if we can somehow reuse command names (see HotKeys and
      MouseSettings constructors).

ComboBoxes can't be localized from the resource editor inside of Visual
Studio (see Helpers::LocalizeComboBox).
Make the TabbingFramework localizable

TabbingFramework now requires three #defines for its Scroll Right, Scroll
Left and Close tips. They could be either resource IDs or _T("strings").

They're copied to stdafx.h to not include resource.h in stdafx.h and
modify too many files in the process.
First localization of Console: Russian

resource.h is ignored because it's better be copied from ..\Console folder
any way [and for each build].

Localization instructions are in ReadMe.txt file.
Make Credentials dialog an English (US) resource

To fully utilize language-support in resource files, we better correctly
specify the language of default resources. When the Credentials dialog
was first added (in 00af50c8), it somehow was placed in Croatian resources.
Remove accelerator from Command label on Hotkeys Settings page

Patch 2749871 "Bug Fix for 2250711" By Phillip Foose ( phillipfoose ):
This is a very simple bug fix, on the hot keys dialog, you had &C for
Command and &C for Clear. Sine the Command field is a read only text box,
I've removed the accelerator key, so that alt-c works as expected and
clears the key.
Add most useful items to the System menu

Not all menu items are added, but only "most useful items", like New Tab,
Close Tab, Edit, About.

The items are added to the system menu with slightly different hot keys for
two reasons:
- to not collapse with the default items that are already there (like
  Mi&nimize vs. &New tab);
- to mimic cmd's extra items (e.g. Alt+Space,E,P executes Paste;
  Alt+Space,P opens Properties, which are really Settings).

The items are copied from the template IDR_SYSTEM_MENU.

The New Tab sub-menu is not re-created each time a tab is added or removed
to not go through troubles of finding the item in System menu.
Implement OLE-based drag-and-drop

Now supports dropping:
- usual files and folders;
- special desktop items (e.g. My Documents) that have physical path;
- text snippets (e.g. from VS);
- network files (CFSTR_SHELLIDLIST probably requires a special handling of
  network drives);
- shortcuts.

A dropped shortcut is resolved if:
- it's the only file being dropped and
- Ctrl key is being hold (kind of standard way in Explorer).
Add support for zooming with standard ctrl+wheel

Now font size can be temporarily changed with usual Windows gesture -
Ctrl+Mouse Wheel.

This fix is discussed on Sourceforge in [ 1733641 ] Hotkey to resize fonts.

The calculation of GetMaxRect is modified to allow zooming beyond
main-screen limit, imposed by the design of cmd.exe. When the limit was
enforced, Console did not calculate the new buffer size correctly.
Restart 64-bit Console if 32-bit version is running on 64-bit OS

This works only on XP SP2 or later due to IsWow64Process availability.

The code is taken from:
http://blogs.technet.com/ken/archive/2009/05/03/32-64-bit-detection.aspx
and adjusted, according to:
http://blogs.msdn.com/oldnewthing/archive/2005/02/01/364563.aspx
and
http://msdn.microsoft.com/en-us/library/ms684139(VS.85).aspx
Attempt to improve visual feedback during resizing

The drag rectangle will jump to a possible position as determined by
the used font.
Delete Zone.Identifier to unblock contents of the help file

By default, the Help will not be displayed if the CHM file was downloaded
from the Internet, thus contains Zone.Identifier, which is documented at
http://msdn.microsoft.com/en-us/library/ff469212(PROT.10).aspx

The solution will work in most cases, but not if the administrator unzipped
Console for all users to use it. The proper solution is to have a setup.
Add -safe command line arg that ensures that Console will start

If the config file is somehow corrupted - the tab points to a wrong shell
or the transparency is too high - passing -safe on the command line ensures
that the default COMSPEC [on cmd.exe in absence of COMSPEC] is started and
the window transparency settings are ignored.
Refactor parsing command line args

The args, important for the application, are parsed in the app, but the
args, important for the main window, are now parsed by the window itself.
Add support to use an existing instance when opening tabs

Only one instance can be marked for reuse.

Obviously, the app-wide command line args are ignored if the instance
is reused. Currently, they're custom config file, window title. All
others - including tabs, dirs, commands, delay between opening tabs -
will be passed to the running instance. The -safe flag will not change
the transparency of the running instance, but will ensure that COMSPEC
will open if everything else fails.

Attempt is made to bring the reusable Console into foreground, but it may
fail [for no apparent reason].

If a reusable instance is running, launching with -reuse will just activate
that instance.
Add support for Jump List

The jump list will be updated only on startup of a Console.
If a config is specified on a command line, the list will NOT be updated.
Save general colors into the temporary XML element each time they change

This will be useful when per-tab colors map will be reset to general one.
Refactor Tab Settings to simplify having more than two configuration tabs
Implement settings upgrade helper
Add support to save/load per-tab colors map