Assorted SPImage cleanup.

Prepare for bug hunting. Consolidate duplicate code. Add leading
underscore to instance variable names.
Don't implicitly start loading an image.

Start loading when explicitly requested, not when the image property is
accessed.
Clean up image url creation.

There’s no reason for cacheSpotifyURL to exist. It adds extra trips
through dispact queues.
Cleanup image initializer.

The struct parameter was always null.
Add Spotify thread assertion for C functions.

Use it in new image functions.
Simplify image loading logic.

The image struct should never already exist when loading starts.
Don't expose SPImage's LibSpotify struct.

It’s not particularly safe for the outside world to access.