Add the ALIAS target concept for libraries and executables.

* The ALIAS name must match a validity regex.
* Executables and libraries may be aliased.
* An ALIAS acts immutable. It can not be used as the lhs
  of target_link_libraries or other commands.
* An ALIAS can be used with add_custom_command, add_custom_target,
  and add_test in the same way regular targets can.
* The target of an ALIAS can be retrieved with the ALIASED_TARGET
  target property.
* An ALIAS does not appear in the generated buildsystem. It
  is kept separate from cmMakefile::Targets for that reason.
* A target may have multiple aliases.
* An ALIAS target may not itself have an alias.
* An IMPORTED target may not have an alias.
* An ALIAS may not be exported or imported.
CMake Nightly Date Stamp
Merge topic 'ALIAS-targets'

370bf55 Add the ALIAS target concept for libraries and executables.
VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput

Use the cmSourceFile returned by AddCustomCommandToOutput instead of
throwing out the return value and looking it up with
GetSourceFileWithOutput.
Add test ThousandTargetsDepOnOneCommandWithManyDeps.
Add new test EmptyDepAndZeroOutput.

This test trigger a case that was not covered yet by CMake's test suite.
However, CMake's master branch did not have this bug. I caught it while
writing an optimized version of cmMakefile::GetSourceFileWithOutput(). My
first attempt was passing all the test suite but was buggy. I would have
find the bug in the first place if this test was already present. This
patch fills this gap.
Speed up source access knowing the output.

Use a binary search tree to associate output to input source files.
It replaces the O(N) search algorithm by a O(log(N)). However the
insertion is now O(log(N)) instead of O(1).

With this patch the test "HundredTargetsDepOnOneCommandWithManyDeps" no
longer timeout.