Adds support for 'unrated' option

This boolean option allows to choose if the algorithm can pick up unrated
tracks or not. If set True, the generated playlist can contain unrated tracks
(if any in the user library). If set False, only stricly positive rated tracks
are used.
Default: unrated=True
Explains how works copy_playlist(uid, plid)
FIX typos
Adds not None check after fetching LibEntries

Prepares for managing playlist deltas
FIX no tracks found in user library
FIX iterating NoneType object

Adds 'IS_EMPTY' error code (used if generating a playlist fails)
FIX several bugs

FIX handling when one or more seeds
FIX check if tracks found or not in user library
Merge branch 'dev/solo'