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.