Split level into two separate classes and level options

This pull request splits the `level` option in two options: `classes` and `depth`. The first one controls what "leaf" genres should we consider: only primary genres or all of them (and possibly other future options, such as choosing the most voted genre *wink*). The `depth` option can be used to control the "specificness" of the genres to be set: only the most specific ones or all ancestors. Likewise, there can be new options in the future, such as reducing all genres to a certain height in the tree (e.g. if one wants to set only top-level or depth 2 genres).