Escape regexp metacharacters

Searching the library, filesystem or playlists uses the re-module. In
order to properly search for characters that have a special meaning for
regular expressions characters need to be escaped first. This is now
done by passing tokens to re.escape.

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Avoid using gtk.gdk.threads_enter/leave

Wherever possible we now use gobject.idle_add calls when gtk calls need
to be made from threads other than the main thread. Previously we
encapsulated calls like this in gtk.gdk.threads_enter()...
gtk.gdk.threads_leave().

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
blaplaylist.py: don't query for track number

Track numbers are often stored as strings like "3/13" which means
querying for "/" in playlists would return a lot more than probably
intended. To avoid this we simply refrain from querying the TRACK and
DISC property from now on.

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Start rewrite of lyrics fetcher

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Reorganization of startup, shutdown & source tree

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Fix bug in determining week day from date

Signed-off-by: Niklas Koep <niklas.koep@gmail.com>
Reorganization of startup & shutdown (cont'd)

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