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
Merge pull request #301 from YorkZ/york

Fix the problem of corrupting "known project file"
Improve project root identification customization.
Merge pull request #299 from thomasf/project-root-parent-override

Support parent project root files which overrides current directory.
Added open in dired mode for helm-source-projectile-files-list
Merge pull request #306 from danielwuz/master

Added open in dired mode for helm-source-projectile-files-list
Always return absolute path from `projectile-project-root`

Fixes #305
Rename tests that don't follow `projectile-test-*` convention
Merge pull request #307 from Silex/master

Always return absolute path from `projectile-project-root`
Add file existence cache.
Merge pull request #310 from thomasf/file-exists-cache3

Add file existence cache.
Indentation fixes
Add basic go project support
Merge pull request #314 from dougm/go-project

Add basic go project support
Provide support for running and switching between tests in Grails.
Merge pull request #316 from mbezjak/project-type-grails

Provide support for running and switching between tests in Grails.
Provide support for running and switching between tests in Gradle.
Merge pull request #317 from mbezjak/project-type-gradle

Provide support for running and switching between tests in Gradle.