Use Interface instead of abstract ListPreloader

In your examples the ListAdapter and the final ListPreloader are strongly connected. Using an Interface will remove this strong connection.

Using an interface that an Adapter can implement has the following advantages:
 1. the dimensions don´t must be passed to the ListPreloader while the Adapter has the first access to the dimensions of the ImageView
 2. you don´t have to pass the items to the ListPreloader, while the Adapter already has the newest set of items (e.g.: CursorAdapter)
 3. in most cases the ListAdapter already has an RequestBuilder, so you don´t have to pass them twice
 4. you get rid of an extra class (ListPreloader) you have to implement

Take a look at adjusted samples in this PullRequest (e.g.: FlickrPhotoList [FlickrPhotoList.java](https://github.com/DavidWiesner/glide/commit/78e46914d418885eeffaedade154bb677a18dc31#diff-ce67ed1d36407a6c2aa6b69fd7d9132f) )

To achieve i moved the abstact methods to an new interface PreloadModelProvider that later will be passed as argument to the ListPreloader

**Future Work**
Think about changing the request to the PreloadModelProvider to  load the preload items one by one instead of requesting a list of items. If you do so you can get ride of the extra List of items will be created in the Adapter.

regards,
David