Rework file organization and prepare for i18n support

Inspired by CritiqueBrainz code organization, introduce the use of Flask blueprints


We can probably remove this message now that the website is live.