cache_access, update_policy, and setup_cache work correctly

cache_access is changed so that it makes separate calls to the
read and write functions when multipl blocks are being read or
written. It also calculates the tag, index, and offset now.

update_policy only works for LRU for now. It is working how it is
supposed to.

setup_cache has been working but now it works for sure. It will
create caches correctly.
cache_read is implemented

cache_read is implemented using the CS2200 code. As far as I
know, this code works.
Both cache_read and cache_write are implemented.

LRU and Blocking are implemented but give slightly different
results. Moving on to FIFO and Subblocking and will ask the
instructor about this.
NMRU-FIFO replacement policy seems to be working.

The fifo replacement policy is implemented. It is giving wrong
stats but the stats seem close enough that it might be a problem
like with d.taskgraph. Will look at it with the instructor.
Committing so I can open outb.txt on my mac.