New module mal/module

* mal::module::manager maintains list of modules (classes providing
  implementation of some interface, implementation is owned by manager)
type_id: Category type deduction from parameter