Add support for different data sources

Sources are defined with a name, url and parse method in a JavaScript object in main.js.
Sources are chosen with a menu on the back of the widget and are stored in the widget's preferences.