Refactor `Site#cleanup`

Move the cleanup logic out into a separate class,
`Jekyll::Cleaner`.
change site_cleaner to use attr_accessor
make obsolete_files a method (@mattr-)
put the Cleaner instance in a `Site#site_cleaner` method
adding detachment functionality
adding default configuration to false
adding documentation on using detach
Fix docs server options override

Override the source and destination before passing it along to the
configuration
adding note about running detached
Use more efficient merging
Revert "Use more efficient merging"

This reverts commit 78df4ddb704f6fd11dcf2c98d4c9ca2260dbab8e.
Use more efficient merge
adding new -B flag for -background-
remove no longer necessary condition
move Jekyll::Cleaner to Jekyll::Site::Cleaner
Merge pull request #1444 from chrisnicotera/master

Fix docs server options override
Update history to reflect merge of #1444
final mods
Merge pull request #1443 from ddavison/detachment

Detachment
Update history to reflect merge of #1443