runtime: caml_free_shared_libs function added

(unload all the previously loaded shared libraries)
runtime: disabled the RTLD_NODELETE option in the call to dlopen in unix.c

Because of this option it was impossible to unload shared libraries on Unix.
The reason why it was there in the first place is shrouded in mystery.
runtime: the great merging of asmrun/startup.c into byterun/startup.c
runtime: allowing for repeated calls to caml_startup and caml_shutdown
runtime: caml_final_do_all_calls function added

(forced finalisation of all values registered with caml_final_register)