Make sure Cleaner doesn't remove dirs if they only contain subdirs

Closes #2204
Keep parents of directories in keep_files

Closes #1297
Add jekyll_github_sample plugin
Merge pull request #2463 from bwillis/patch-1
Update history to reflect merge of #2463 [ci skip]
Using implicit returns to conform to coding style
Merge pull request #2458 from karouf/cleaner-empty-dirs
Update history to reflect merge of #2458 [ci skip]