Made DynELF much more modular and able to solve more tasks

DynELF has been refactored a lot. Instead of a complex constructor I have added three static factory methods for instantiating from an elf, from a pointer into a module that does not move and from a pointer into a module that does move.