Unloading native libraries (libavoid) on class reloading

- A native library is always assigned to ClassLoader
- Native methods can only be resolved if the class are loaded by the
  same ClassLoader as the native library
- A native library can only be loaded once

That means we have a problem when the classes of the runtime.libavoid
module are reloaded. We have to unload the native libraries and reload
them together with the classes. The only way to do that is by using some
dirty hacks (reflection and finalize-calls).