utils: Copy the copytree example from the Python docs

shutil.copytree() dies if the destination directory already exists.
This copy is the base of a new version that will not die.

http://docs.python.org/2/library/shutil.html#copytree-example
utils: Add docstring and shutil namespaces to copytree

Now the new function duplicates shutil.copytree exactly.
utils: Teach copytree to handle existing target directories
utils: Teach mkdir_p to fail if the existing target isn't a directory

Existing symlinks to directories will still pass, because isdir()
follows symbolic links.
generators: Teach StaticGenerator to handle directory copies

I moved the logging statement before the attempted execution so that
when Pelican dies with an exception during a copy [1], the user will
be able to easily see what Pelican was up to when it died.

[1] e.g. from a KeyboardInterrupt, even if the code is flawless.
Merge branch 'mkdir-p-nondir-error' into wip
Merge branch 'copy-directories' into wip

Conflicts:
	pelican/utils.py (no semantic collision)