Merge pull request #83 from gbaty/clean_code

Clean code
First draft for plugin manager
All applet plugin follow standard plugin convention: __call__ return applet class.
To add widget in mainwindow and fill menus, just call "graft(mainwindow)" method.
PluginManager is now a singleton.
Singleton instance attribute is now private (use call to get it)
Imporve PluginManager (improve code and doc)
Add instances method returning all instances corresponding to one plugin
Python model can now be instantiated with empty constructor
Improve PluginManager.instances, get_applets
Move oalab.plugins interfaces to core.plugin
Real oalab plugins like applets, paradigms, remain in oalab.plugins
All applet plugin now follow same API
All applet class can be instantiated with zero parameters
get_applet service is now based on PluginManager
Add PluginManager in session debug mode