Try to implement VM Ports

* We need Pickle.pack so we load it in the VM functor's define.
* We allow to get only once the stream on VM.stream to avoid leaks.
* The sending without inter-VM synchronization is accomplished
  by pickling the value, adding a task via targetVM.postVMEvent()
  to unpickle the value and bind it in the stream.
add test
fix!