Rework file organization and prepare for i18n support

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