Add an 'exclude' option, fixing #31

As promised, I implemented the ``exclude`` option using ``shutil.copytree``'s ``ignore`` callback.
Yes, I had a very strong reason why I did not use ``shutil.ignore_patterns()``: It only operates on basenames. Therefore, to exclude ``PySide/samples/``, you would have to add the pattern ``samples`` which would include *every* file or directory named ``samples`` in all modules, which is probably not what anyone wants as it might lead to very surprising errors.

This is also the exact difference between my callback and ``shutil.ignore_patterns``: I do a bit of path juggling before I pass the files to ``fnmatch``. (Also, I use ``functools.partial`` instead of nested functions to reduce/distribute complexity.) Apart from that, the callbacks are roughly equivalent to the shutil one.

The only option to use ``shutil.ignore_patterns()`` would be to allow the user to provide a *different* set of patterns for every included package, which complicates configuration a lot, and would still exclude *all* files in a package named ``samples``.