To achieve this, the following changes are made
- scan module folders before scaning loaded modules
- struct module was splited into struct module_node for the avl tree
and struct module for storing actual info about modules
The other minor fix is that module.opts is now freed in free_modules()
when appliable
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>