Cleanup modules on unloadself.
Allocate module memory from top/bottom per request.
Validate the elf position argument more.
Correct some loadmodule error codes.
Load kernel modules into kernel memory.

This way they don't eat up user memory space.
Add module name to ELF allocations.

Makes debugging it easier.
Blackberry buildfix.
Add a safety check for freeing kernel modules.
Don't count strings as text in module info.
Skip zero size segments in module segment info.
Sum all .bss* sections when counting bss size.
Allocate 0x4000 at the bottom like real firmware.

Should fix #4056.
Allocate kernel modules that fail to decrypt.

This corrects some memory semantics to match real firmware.
Allocate executables low, not at a specific addr.

Since usersystemlib takes 0x4000 at the bottom, this will be the same.
The only impact is that kernel modules may also be able to allocate.
Clarify some module loading code.
Report forwarding module load to loadexec.

Shouldn't do this probably.
Merge pull request #6616 from unknownbrackets/modules

Improve module loading and allocation