F restructure

This branch proposes a common structure and common apis for chrome, firefox and safari :

Issues Left :

- setupListeners() and setupCommands() is not general enough for firefox, should be setupAll (messagingRules) called in background.js, then goes to the adapter. See firefox main.js background_adapter.setUpScripts();

-The front API is wrong relative to localstorage that needs to be fixed.

-the shared scripts need to be able to recognize if the browser is firefox in order to be able to load scripts with require("") which is the firefox way, and stay exactly the same (calling require in safari produces an error, maybe we can catch it ?) Need feedback on this.

-Last but not least, HAML is not working in firefox thus a huge part of background.js is in fact not shared at all between the 3 browser ATM. Need help on this one.