playlist: Check error on playlist.add_tracks()
session: Replace some to_char_or_null() with to_char()
Keep lock while reading data from libspotify

If a libspotify function is called by another thread before we read data out of
the pointers returned from libspotify, then the data may be changed and we may
be working on freed data, which would be very bad.

Thus we keep the global lock until we've copied the string to Python space, or
in the case of sp_* pointers, we keep the lock until we've called sp_*_add_ref
on the pointers.