Keep certain files when cleaning output; fix #574

If `DELETE_OUTPUT_DIRECTORY` is set to `True`, all files and directories are deleted from the output directory. There are, however, several reasons one might want to retain certain files/directories and avoid their deletion from the output directory. One such use case is version control system data: a versioned output directory can facilitate deployment via Heroku (as noted in #574) and/or allow the user to easily revert to a prior version of the site without having to rely on regeneration via Pelican.

This feature introduces the `OUTPUT_RETENTION` setting, a tuple of filenames that will be preserved when the `clean_output_dir` function in pelican.utils is run. Setting `OUTPUT_RETENTION = (".hg", ".git")` would, for example, prevent the relevant VCS data from being deleted when the output directory is cleaned.