Refactor and split abc::module_impl

Split abc::module_impl in abc::app_module_impl and
abc::library_module_impl; abc::module_impl remains as a common base class,
but most of the functionality hs now in either derived class.