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

Fix the problem of corrupting "known project file"
Support parent project root files which overrides current directory.
wip
simple lists (defcustom)
fix bug
formatting
simplify forms
not needed with multiple custom lists
doh
add cache
add cache expiery
quick, dirty tramp fix for projectile-locate-ancestor-containing

rewrite this better