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.