Use SoundCloud API query search to find tracks

The "genre" query didn't seem to be returning relevant values. Using "genres" or "tags" seemed to work better (from inspecting the JSON).

SoundCloud docs seem to indicate that this is the easiest way to search (see http://developers.soundcloud.com/docs/api/guide#search)
Poorly implemented network resilience

Aim is to ensure that any existing waveforms are still iterated through when there is no network available.
Simplify model initialisation

The API observer now produces a stream of List<Track> that get incrementally bigger as the waveforms are downloaded. Thus we can just keep assigning the current track list to be the result of the call().

This is useful as we can keep recycling the old content until we know that new content is available. Especially useful when the connection fails.

Note - the call() mechanism doesn't provide an obvious way to know if you are first emission on a subscription, and you can't just clear the track list unconditionally.