VS: Teach VS >= 10 to recognize CMAKE_SYSTEM_NAME 'Android'

When CMAKE_SYSTEM_NAME is 'Android', check for an installation of
'NVIDIA Nsight Tegra Visual Studio Edition' and generate .vcxproj
files for the "Tegra-Android" platform.  Also make the installed
version available in a CMAKE_VS_NsightTegra_VERSION variable.
VS: Detect compiler id of Nsight Tegra-Android toolchains

Teach CMakeDetermineCompilerId to recognize the Tegra-Android platform
and generate a test project for Nsight Tegra tools.  Locate the full
path to CMAKE_<LANG>_COMPILER by computing it within the test project
build environment.

Also teach CMakeFindBinUtils that this variant of the Visual Studio
generator uses UNIX-like instead of MS-like archiving and linking tools.
VS: Teach vcxproj generation about the Tegra-Android platform

Complete the basic implementation of the VS Tegra-Android generators
by replacing parts of vcxproj files that are specific to MS tools
with settings defined for the NVIDIA Nsight Tegra tools.

Current limitations include:

* We have no "flag table" so flags will be passed in the additional
  options fields instead of mapped to the vcxproj elements defined
  by Nsight Tegra msbuild platform definition files.

* We have no interface to set the AndroidArch, AndroidStlType, or
  AndroidTargetAPI fields so defaults will be used.

* The Nsight Tegra msbuild platform definition files do not provide
  a working "Utility" target type so for add_custom_target we need
  to use a "StaticLibrary" target type and leave out ClCompile rules.

* There is also no target type for plain command-line executables
  so for add_executable we need to use a "DynamicLibrary" target.
  Full application bundles will likely require new CMake target
  properties (like WIN32_EXECUTABLE for Windows GUI executables).
cmTarget: Track internally whether platform is Android

Add an IsAndroid member to save whether CMAKE_SYSTEM_NAME is "Android".
Add 'ANDROID_GUI' target property to mark Android applications

Also add a 'CMAKE_ANDROID_GUI' variable to set the property default
so a project can easily make all executables Android applications.
An Android application executable file has the same extension as a
shared library (.so).
Add 'ANDROID_API' target property to set Android Target API

Also add a 'CMAKE_ANDROID_API' variable to set the property default.
VS: Generate ANDROID_GUI executables as app packages

When an executable is marked with ANDROID_GUI, generate an AntBuild
step in the .vcxproj file and point it at the directory found to
contain AndroidManifest.xml.  Assume it also contains build.xml.
Tests: Always detect VS and SDK availability on Windows

Move the detection block out of the Windows >= 8 conditional so it
can be used on other versions.
Tests: Add test for VS Nsight Tegra generator support

Create a VSNsightTegra test based on the "two-libs" example from the
Android NDK.  Add it whenever testing on a machine with VS 11 or 12
and the NVIDIA Nsight Tegra Visual Studio Edition installed.  Exclude
it when there is a space in the path to the source or build tree because
the tools do not seem to support it.
Merge topic 'vs-nsight-tegra-generator' into next

c6a636b2 Tests: Add test for VS Nsight Tegra generator support
112ea4f7 Tests: Always detect VS and SDK availability on Windows
984ff1fc VS: Generate ANDROID_GUI executables as app packages
1215dc6c Add 'ANDROID_API' target property to set Android Target API
1fe64b70 Add 'ANDROID_GUI' target property to mark Android applications
cc66e15f cmTarget: Track internally whether platform is Android
530fb6be VS: Teach vcxproj generation about the Tegra-Android platform
82805025 VS: Detect compiler id of Nsight Tegra-Android toolchains
30ca6cfb VS: Teach VS >= 10 to recognize CMAKE_SYSTEM_NAME 'Android'