Invalidate project cache if .projectile is modified

This probably should have tests.
Test projectile-maybe-invalidate-cache + changelog
Correct a bunch of indentation problems
Add projectile-cleanup-known-projects

Go through the list of known projects and remove those which
directory doesn't exist anymore.
Fix typo
Merge pull request #295 from Silex/master

Add projectile-cleanup-known-projects
Merge pull request #290 from dgtized/cache-invalidation-on-dirconfig

Invalidate project cache if .projectile is modified
Check if the file is ignored before adding to cache

* projectile.el (projectile-cache-current-file): Add
  to `projectile-ignored-file-p' as an additional predicate
  against adding the file to the cache.

This fixes a problem of "file.~HEAD~2~" (result of
`vc-revision-other-window') being added to the cache although
".projectile" has:

    -/*~
Merge pull request #296 from abo-abo/master

Check if the file is ignored before adding to cache
Modifies `projectile-ack` to accept a prefix argument
- With a prefix argument, prompts for a directory to perform the ack search
Makes `projectile-ack` ignore `projectile-ignored-files`
Merge pull request #294 from NicolasPetton/master

`projectile-ack` improvements
Detect the root of Subversion checkouts.
Merge pull request #291 from Wilfred/master

Detect the root of Subversion checkouts.
Add command to save all project buffers
Merge pull request #298 from kyleam/save-all-project-buffers

Add command to save all project buffers
[Fix #233] Recognize CVS projects automatically
Fix the problem of corrupting "known project file"

At times the "known project file" (the file "projectile-bookmarks.eld") gets
damaged, i.e., the end of the list gets abbreviated with " \.\.\.". This is
caused by calling `prin1-to-string' with random current non-nil value of
`print-length'. A non-nil value of this variable determines the maximum length
of list to print before abbreviating. Therefor, by binding `print-length' to nil
temporarily while calling `prin1-to-string', we forces no-limit printing which
addresses the problem.
Expand file names before processing them

We need to expand a file name to make it absolute and to process any special symbols before trying to process it.

Fixes an error from projectile-switch-project, when default-directory contains a tilde, e.g. "~/", as is the case in *scratch* and probably other special buffers.
Merge pull request #302 from lunaryorn/patch-1

Expand file names before processing them