Replace DEBUG wrapped printf statemts with debug_printf macro.
Reuse existing helpers for *_str instead of duplicating code.
Start using booleans for loaded, starred etc.

Track availablity is a special type, so this was left alone. This also writes
many of the 'convert sp_* lines to int' lines out so it is obvious what sp_*
type we are getting the values from.
Convert create_session to return sp_session.

This allows use to use the Session_FromSpotify helper in the instance creation
class method.
Greatly simplify session creation code.

Uses some helpers to get the data more directly from the python attributes to
the struct. This also removes a lot of the error checking for non python errors.
Basically we will still error out if the attribute is missing or if the value
can't be converted, for anything else, like say None the value just won't be
set in the struct.
Correctly handle missing settings in create session helper.

We now set fallback for user_agent and cache_location so we don't segfault.
Seemingly libspotify works without the appkey, but since this is a requirement
we ensure this us set as well.

cache_location = None now implies disable cache with this change.
Use correct types in pointer passing for config_data.
Set max URI length back to 1024.
Fix typos and convert all new comments with // to /* */ style.

Also updates and adds TODOs for memory related, and thread safety
correctness cases that need testing...
Reduce playlist code duplication with create_and_initialize_callbacks
Merge pull request #101 from adamcik/further-code-cleanups

Further code cleanups