Issue 128 unit tests structure

Fixes issue #128. Restructured unit tests and added own cache dir for unit tests. Previously you needed to chown the cache dir for the unit tests to run and lock out the web server and vice versa. Added gitkeep to this unit tests cache dir to not let the directory be fully cleared and possibly left out of commits.