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-idle-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`.

See issue #248.