search: fix image path
website: add image object

Since resouces such as songs, artists and albums can have more than one image attached to them,
often the same art but in different sizes, it makes sense to create an image object and attach
it to various resources using a one-to-many relationship. This image can point to an external
url or a relative path, and supply a size.
website: add popularity attribute to source object

The popularity attribute should be the number of views, plays, or some other
measure of the popularity of the resource at the source.
website: use new hash syntax from ruby 1.9
search: add source parameter to saved search

Since we need to cache searches it is important to save the sources
that were searched as well.
db: add migration for new source parameter in search object
website: complete image object

Make the Image class able to create new images from an array of hashes,
fetch a specific image size, and fill in missing size parameters by
making a minimal http request for the image to retrieve the neccessary
headers.
website: make image creation handle nil value
test: fixed tests so they include file extensions for local paths
website: update backends to report images following the new structure
website: make source class able to extract correct resource type from path
website: create image objects when creating new artists
website: add latest method for retrieving the latest performed search
website: add ability to get artist by hash

Creating an artist by hash instead of just a string lets you supply
images and sources for the image, in addition to the artist's name.
website: extend lastfm backend with info retrieval

Add method to Last.fm backend for retrieving information on artists,
albums, songs and events. This can later be used for retrieving missing
images via sources.
website: added tests for source and fixed missing camelization
website: add ability to get event from hash

Add methods for finding and creating events using a hash following the
structure that is returned as search results.

Change the database layout of events slightly to avoid keywords and
properly use images.
website: fetch dates for events in lastfm backend
website: add validation of url uniqueness
website: add test for getting latest search