Update Feature: Support custom module path

Now modules can be located out the MODPATH and can still be loaded into system with the path filed in db. An absolute path filed is required to be the db to load the module.
Update Feature: Added widget install and uninstall methods

Now installing and uninstalling a widget is easy. Just pass a array of name and title
of the widget as array and module name as second parm to widgets::install()
similary to uninstall a widget of the module is automatic. If a module is uninstalled the widget will be uninstalled automatically. @todo activate/deactivate widgets