current: rename attributes to 'store' and 'view', which is clearer

This also starts to remove some access from main.py to internal
of current.py, but this is just the beginning.
current: fix and simplify searching songs in the current tab.

Searching songs in the current tab now relies on the Gtk.TreeModelFilter
model, which (as the name implies) does filtering on the model.
When a search is performed, it updates the pattern to search and filter
on the go the rows given to the view. The view always deals with this
filtering model, although it doesn't filter all the time.

This is a huge improvement over the custom filtering method used until now,
which consisted of creating a brand new model with filtered values, dealing
with stringly typed variables (?!), messing with the model used by the
view, with some caching, optimization, threads and lock on the way.
Although the search is not faster, the code is much, much, much simpler to
read and understand.
Some cleans are still doable, although with some optimizations which will
be done later.
current: Fix removing of a song

.convert_iter_to_child_iter() only exists on a model wrapper (such as
Gtk.TreeModelFilter), so we need to use this function to access the TreeIter
of the submodel.
current: remove songs' caching, and use current's ListStore for them instead
current: fix lagging bold row when using the consume mode

Slightly improved current's public interface as well.
current: simplify keeping position in the playlist
Rework setting search filter entry invalid

The old method of saving the style is not needed, as simply repeating
with None in place of color is sufficient to undo an override.

While at it, moving this to ui as it is a common ui function.
current: attributes name cleaning
current: fix filtering, less memory usage, simplification & code cleanup