ArtworkManager: prevent wrong inclusion of null artwork_id in cache

The public method LookupScaleSurface(_,size,_) of ArtworkManager class
calls another public method called LookupScalePixbuf(_,size). The latter
was in charge of adding cached null artwork_ids to prevent subsequent
slow lookups, however:

1) If an invalid (as in, too small) size was specified, a null value was
also returned by the callee LookupScalePixbuf().
2) The caller LookupScaleSurface() was *also* inserting to null_artwork_ids
when receiving a null value from LookupScalePixbuf().

The consequence of the above was: if an invalid size ( < 10) was requested
for a *valid* artwork_id, the cache would fill a null value for it, and all
subsequent requests (even the ones with valid sizes) would receive null.

The user-visible consequence of this was cover art not rendering in widgets
such as ClassicTrackInfoDisplay or others. Surprisingly, this bug was more
likely to be hit in the gtk3 branch when the NotificationArea extension was
enabled, and not in the master branch (gtk2) or when this extension was
disabled.

The solution, implemented in this commit, is:
- Stop querying the null_artwork_ids cache from the caller.
- Stop adding elements to the null_artwork_ids cache in the caller.
- Move from the caller the only scenario not covered by the callee,
about checking if the pixbuf's Handle is IntPtr.Zero.
- Add some comments clarifying some absences of null_artwork_ids
manipulation.

A unit test is also added for the bug (which failed before this fix,
and passes now), as an extra layer of protection against future
regressions. This unit test uses one of the embedded resources (PNG)
that are already inside the Banshee.ThickClient assembly to provide
dummy cover art.