Assign a cache to each thread.

Each thread gets its own private cache structure. At the end execution,
cache performance for all threads are merged into a single report such
that total hits to cache size N = sum(hits to thread i cache size N) for
all threads i.
Report split accesses.

Output the number of accesses that require accessing more than one
cache line to service the request.
maintain associativity vectors for tracking the affect of associative caches
use stack allocated vector for right match tally count to cut down on heap allocations
remove old line changed in last commit
remove all trace printing
add up rolling tally of reuse distance counters
expand associativity bits to length of address to ensure that access counts are accumulated correctly