Extract code that converts from PyObject to sp_*_type

This adds helper functions 'bool *_convert(PyObject*, void*)' for
sp_artistbrowse_type, sp_search_type, sp_toplisttype and toplistregion.
These can be used with PyArg_ParseTupleAndKeywords and the format "O&"
to convert the Python object to an approriate C structure.

For all but the toplistregion we convert directly to the right sp_* type.
Regions need a custom struct that contains a sp_toplistregion and username as
we produce both sp_toplistregion and username from the same PyObject.
Free memory created by "es" format
Use encoded string convter for usernames and passwords

This fixes #103 which was caused by incorrectly encoding an already encoded
string. Ideally this would be fixed with much simpler code in the python API,
but since we expose the C-API login function like we do there is no guarantee
about what we are called with.

The conversion function takes (PyObject*, char**) and allocates space for and
copies the object encoded as utf-8. As such the caller needs to cleanup with
PyMem_Free after this has been used.
Review style fix
Update *_FromSpotify to take an extra bool add_ref.

This extra parameter has been added to everything except session and playlist
folders. Idea is that callers _must_ always care and know if we should be
adding a ref or not. With this change we should be rid of a bunch of lost
libspotify objects that would end up with n+1 refs instead of n.
Audited that all sp_*_add_ref call have matching dealloc code with sp_*_relase
Switch to only using PyMem_Malloc
Merge pull request #105 from adamcik/memory-cleanup

Memory cleanup