[Bug fix] When cache is empty, do not add file but initialize instead. Also add a test case.

Because adding a file will make the cache non-empty with that only file.
The next time a command like `projectile-find-file` is invoked, only
that single file is displayed. When the cache is empty, do not add file
but retrieves all project files first.

How to reproduce:

- Enter a project directory in Dired.
- Invalidate the cache.
- Open a file in project with Dired or anything, except `projectile-find-file`.
- After the file opened, run `projectile-find-file` and there's only one file in the list.

Add a test case for testing projectile-cache-current-file function.
The test case contains two tests:

- One for testing when cache is initially empty. When
  projectile-cache-current-file is called, cache is expected to contain
  every project file. The message "Empty cache. Projectile is
  initializing cache" will be printed out.

- One for testing when cache exists. In this case, it should return full
  cache.