[Fix #593] Only initialize cache when use Projectile commands

Initialize cache when a user opens a file can take a long time if a
project is large. Projectile should not interfere with normal Emacs
operations. Cache should only be initialized when a user uses Projectile
commands that requires the cache.

A file should not be added to cache unless the cache is initialized, to
avoid corrupting the cache with only a few files inside. A message is
displayed when Projectile starts caching process to notify the user that
Emacs is not hanged or crashed. This message is displayed on all
commands that invoke caching, not just for adding file.