Convert set name to unicode, as flickr API returns

This broke when I had a directory of photos called 25-Jañuary-2014 -
it failed to notice the set already existed and gave a warning
"Unicode equal comparison failed to convert both arguments to Unicode"

Test case:
1. add a new folder of photos with unicode in the folder name
2. upload at least one photo from this folder
3. cancel the uploads and check a new set is created with unicode name
4. start an upload session with more photos in the unicode folder
5. make sure new photos go to the existing set when upload ends

Hopefully fixes #10.
Better debug error when set edit fails
Fix for ctrl-c when the current set does not exist

This patch fixes the case when a bunch of photos would go to a new set,
but that set doesn't exist, and you ctrl-c cancel the upload. Previously
it would add the photos to some random existing set.
Avoid creating duplicate sets
use logging properly and remove use of timestamp
Use path.join instead of concat'ing strings

This is part of issue #12 to fix things on Windows
Use file system encoding instead of always utf-8

This should fix #14, thanks to MrBovert for the patch.
tags2set: remember just-created set to avoid dupes

This should fix #15 when > 20 photos are uploaded in one go and create a
new set.
tag2set: add the uploaded photos to existing sets

This adds a unit test that fakes out flickr to make testing the set
stuff easier. To run the test:

    cd test
    python test_tags2set.py

The problem was that if the uploaded_set already existed it was not
used. The last change in 376ea5c41bb02 probably broke this.
uploadr: change methods to functions

Change getResponse and isGood methods to functions as they don't use the
self argument.
uploadr: remove use of xmltramp

The GPLv2-only license might be problematic, and the flickr.py code
already does what is needed.
uploadr: change methods to functions

The grabNewImages and reportError methods have been moved to functions
since they don't rely on anything in the class instance.
uploadr: let the logging API format the string
uploadr: do not overwrite flickr module name

Using 'import flickr' creates a module in the outer scope called flickr,
but reusing this as a variable name here caused confusion.
uploadr: put the allowed extensions in a constant

Fix the overly long line by moving the extensions used out to a constant.
tags2set: let the logging API format the string
tags2set: fix a few pylint issues

Fixes an overly long line and missing spaces around operators. No
functional change and tests still seem to pass.
setup.py: add a test target
tags2set: remove unnecessary global variable 'user'
tags2set: createSet is semi-private, remove global

Rename createSet to _createSet as it is not called outside this module.
Remove the global variable existingSets, pass it to the function as
needed.