website: move concerns from controllers to models folder
website: create genre object

Genres are assigned (many-to-many) to songs, and artists and albums
have thus genres assigned indirectly via songs.

A concern, Genreable, is created for handling genre-related logic
in models.
website: create routes for genres
website: update db schema after genre migrations
website: add concerns to models
website: adjust search tests to properly test the caching of queries
website: add method for getting normalized popularity for a source
website: restructure hash with search results

There is really no need to put search results into [:object], instead
the :hits array is plainly an array of objects.

Similarly the :exact value is a single object, and the controller is
given the power to choose which object should be determined an exact
match (instead of the view).