Re-implement the forced usage of shared libraries for our test suite using a
proper build.conf flag. The updated implementation resolves a few cases where
we linked some applications (E.g. op-depth-test) against both the shared and
the static version of the same library, because direct and indirect
dependencies were handled using different code paths.

This last problem caused test failures on the Windows shared library buildbot,
because svn_error_clear() unhooked a different function for its
maintainer-abort on error leaks, than the other library inserted.

* build.conf
  (msvc-force-static): Document.
  (locks-test,
   checksum-test,
   crypto-test,
   client-test,
   conflict-data-test,
   db-test,
   pristine-store-test,
   entries-compat-test,
   op-depth-test,
   wc-test): Mark these tests as msvc-force-static they use functions that
     aren't published from the libraries that define them.

  (entries-dump,
   wc-lock-tester,
   wc-incomplete-tester): Mark these wc.db test helpers as msvc-force-static.

* build/generator/gen_base.py
  (DependencyGraph.remove): New function.
  (TargetExe): Read new value from build.conf.
  (disable_shared): Don't touch msvc_export.

* build/generator/gen_win.py
  (get_install_targets): Handle the magic of forcing static library usage here,
    with the code that creates shared libraries.
  (create_dll_target): Remove magic name logic.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1520893 13f79535-47bb-0310-9956-ffa450edef68