Moves all drbbdup per-thread memory to unreachable heap.
Moves the drbbdup dynamic case hit table to be dynamically allocated based on a new drbbdup option "never_enable_dynamic_handling" not being set. This eliminates 128K per thread for drmemtrace, which makes a big difference on large applications.
Sanity test: Before:
$ bin64/drrun -rstats_to_stderr -t drcachesim -offline -max_global_trace_refs 10K -- suite/tests/bin/client.annotation-concurrency libclient.annotation-concurrency.appdll.so A 4 64 3
Peak threads under DynamoRIO control : 5
Peak vmm blocks for unreachable heap : 767
Peak vmm blocks for reachable heap : 726
Peak vmm virtual memory in use (bytes) : 10293248
After:
Peak threads under DynamoRIO control : 5
Peak vmm blocks for unreachable heap : 736
Peak vmm blocks for reachable heap : 250
Peak vmm virtual memory in use (bytes) : 8183808
Issue: #5411 (closed)