Allow to pass a functor value to {VM.new}

* Easier to pass the parent VM identifier as well as other data.
* Two separate scrips or VM id comparison is no more needed.
* We Pickle.pack the functor to make it VM-independent.
* We copy the app string in the thread function arguments,
  so memory management is automatic and
  we need not to keep a reference in BoostVM.