tracklist.{filter,remove} with multiple criteria values

Builds upon #564, but removes support for the old API of single criteria values.

The criterias are now a mapping between field names and one or more values. This aligns `tracklist.{filter,remove}()` with the API of `library.{find_exact,search}()`, and allows for e.g. batch removals.

An exception is raised immediately if the API is used in the old way to ease migration and debugging.