[Fix #109] Use expand_path to set cache_directory in case a full path is passed in
Add specs to cover tmp_directory