Revamp setup script

Move contents from the setup method to variables.
Add long description from ReadMe
Add classifiers
Add fallback to distutils if setuptools is unavailable
Follow PEP8 style conventions
Fix method to pickle MetadataRecord on disk

This method serializes the MetadataRecord on disk using pickle.
It was somehow broken in a previous commit and thus commented out.
Though its usefulness is debatable, we rehabilitate it here.
Add title_format parameter to make up the filename.
Move verifyDescription to bot constructor

The bot may be fired in 'freewheel' mode, where it does not ask to check
the description at each upload. This is of course essential when doing
any sort of actual uploading.

The problem is that this is decided in the overloaded _doUpload method,
which is not meant to be accessible at the library level
(it is called by run() but never directly).

Add a new parameter to the bot constructor, which defaults as True.
Automatic addition of extension in title formatting

The extension must always be stated before upload.
It is kind of silly to have to explicitly add it to the rear title formatting.

Update make_title to always add the extension from the metadata.
If no extension is available, add the dummy '.none' extension.
Add XML serialization for MetadataCollection

As an uploader, I want to export the MetadataCollection as an XML file,
in order to use it as input for the GlamWikiToolset.

The GlamWikiToolset quite deprecates most of this library.
One of its current limitations though is that it can only process XML files.
But GLAMs may only provide CSV, built-in metadata, whatever - a usecase for
which this library was precisely built.
But since a bit of cheating never hurt anybody, we can first transform the
GLAM metadata in XML, and then give it back for them to use in the GWToolset.
And this library would be perfect for the job.

Somehow there is no easy library to serialize a dictionary to XML
(just like there is simplejson for JSON), so we need to recode some stuff.

We make use of the library xml.etree, as the built-in ElementTree is limited
in many ways (eg pretty printing).
- Add lxml dependency to requirements.txt and setup.py

- Add to MetadataRecord method to_xml which exports as an XML etree Element.
  There are two dirty tricks here:
   - we want to export sets as XML subelements, hence the violent typecheck
     (note how we comment out make_categories() in post_process_collection())
   - XML tags may not contain spaces, hence the regex substitution

- Add to MetadataCollection method write_metadata_to_xml()
  which loops through the records and append the XML to a tree,
  and write this tree in the given fileobject.

This was not extensively tested yet, only on the TrutatBis batch upload.
Note that this code can handle UTF-8 strings.
PEP8 style formatting
Push version to 0.6
Merge branch 'master' of github.com:JeanFred/MassUploadLibrary