Major playlist rewrite

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Add global mouse hook

Add global mouse hook to allow changing to the next or previous song via
mouse events.

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Decouple drawing and buffer consumption

Previously buffers stored by visualization elements were consumed
whenever the drawing area was invalidated and thus redrawn. This would
often cause premature buffer consumptions when an update was performed
which was not scheduled by the timeout_add callback.

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Adjust logging colors

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Annotation and PEP8 changes

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Remove coding cookies where they are unnecessary

According to PEP8 coding cookies in source files should only be used
when necessary. This strips them of all source files except for
blametadata.py and blaconst.py.

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Check validity of visualization modules on import

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Check validity of format modules on import

This commit also cleans up the formats subpackage according to PEP8.

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Make playlists lockable

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>