Lab: Caches

Explore the effect of caches on performance.
This lab will also demonstrate how to measure the computer's cache sizes
at various levels.
added the two main problems to be solved
C programs to test caches.
make code actually compile with C compiler

removed some left overs from C++
Merge branch 'develop' into caches

Conflicts:
	Vol1.tex
make cache code work better with C

1. Check for malloc fails.  Return error if allocation fails.
2. in cache_size, avoid recalculating lenMod each loop.
inline array loops

No need to have loops in separate function.  Incurs a slight, but
noticeable overhead.
lab update + figures

Added more material to lab.  Added figures showing the cache measurement
methods.
explain caches a bit better

Also added a blurb about numexpr which will take advantage of cpu cache
for vector computations.
update plot to reflect real L3 cache size

Off-by-one index error.
add small story to illustrate caching
integrated imagery from caching story
add TODO items for illustrations
Merge pull request #196 from ayr0/caches

Lab: Caches
Merge pull request #243 from jaredawebb/jared_num_comp

Moved NearestNeighbor directory from Applications to Algorithms