Editor: Move LastBuildConfiguration to user data configuration file

Moved LastBuildConfiguration to a new class to house workspace settings
(potentially things like which windows were open). Editor ignores
workspace settings if the section isn't found. Bumped the user data
format version to 3.4.0.1.
Replace hardcoded property name length with named macro
Added NativeConstants class for editor to read shared constants from native code
Editor now builds data file from managed code
Added Preferences option to enable legacy compiler (as backup if new DataFileWriter class has errors)
Corrected GetNativeConstant not having a default return value
Merge pull request #208 from monkey0506/editor_data_files

Editor builds data files from managed instead of native code
Merge pull request #204 from gurok/340_separate_lastbuildconfig

Editor: Move LastBuildConfiguration to user data configuration file
Editor: Fix incorrect user data XML constants

Corrected references to a couple of game data XML constants in the user
data section. Corrected XML version index check.

Signed-off-by: Ivan Mogilko <ikm_spb@yahoo.com>
Replaced FlagsEditor and FlagsEditorControl with more dynamic StringListUIEditor and StringListUIEditorControl
Added CreateHardLink utility function to editor
Added interface for unified build process
Added BuildTargetUIEditor for selecting target platforms
Split build process for game data file and Windows based on new interface
Added build target for debugger

Note that "_Debug" build target is excluded from the
General Settings pane, and cannot be selected as a
target for building. It is only used by the debug
menus/buttons.
Added build target for Linux
Corrected BuildTargetUIEditor showing all targets instead of available targets
Corrected BuildTargetDebug creating an extraneous EXE file
Updated LATEST_XML_VERSION_INDEX to account for Settings.BuildTargets
Corrected default setting for Settings.BuildTargets to reflect all available platforms