test loading sub modules from another module

test whether a module can load a module that was not in the initial list
of modules to be loaded
always clone event to load a module

remove unnecessary loadFinished boolean
keep loadFinished property and upgrade for nested usage

previously the loadFinished prop was only used in binary form
(true/false). change to integer (0..) so as to keep track of nested
loadModule() calls.
Merge pull request #5651 from radnan/feature/sub-module

Allow modules to load their own dependencies
[#5651] Separated test cases

- Moved new test assertions into their own test case to ensure they failed
  before the patch was made.
Merge branch 'feature/5651' into develop

Close #5651