Adds protocol for different image sources

Adds a protocol to specify an object as an Image Provider. An Image
Provider is a location from which we can grab images. The main two for
this project will be from the User (aka their photo library), and from
Flickr