Add support for running a list of functions when idle

When `projectile-enable-idle-timer` is non-nil, a timer is created and
stored in `projectile-idle-timer` which runs repeatedly every
`projectile-idle-timer-seconds` seconds.  When the timer runs, it calls
run-hooks on a new hook variable, `projectile-idle-timer-hook`, which
defaults to `'(projectile-regenerate-tags)`.  New functions can be added
to the hook using `add-hook` as usual.  Note that the creation of the
idle timer is done using the `:set` keyword in the `defcustom` call that
defines `projectile-enable-idle-timer`.
Merge branch 'master' of https://github.com/nwidger/projectile