Refactoring dev subsystem initialization and improving module support
- Moved module make files under subdir
- Refactored dev subsys to have a separate module for each dev
- Refactored dev subsys initialization to use per dev constructor
- Makefile can now determine if a module is not adding any compilation units
  and can remove it from linking based on that information