ADDED: setting idle_limit
ENHANCED: GC and trim stacks on pengine idle loop to reduce the footprint.
ADDED: Handle new options is new Pengine()
FIXED: delay the destruction of the remote pengine output queue if there
are output events left in the queue after the pengine thread terminates.

HACKY: waiting for safe message queue handles.
Added optional async argument to Pengine.destroy_all() to facilitate
the reloading in the scratchpad.
destroy_all() must update known pengines
pengine_destroy(Id, [force(true)]) should not complain if the pengine
does not exist.
Output terms must be send as a string if the format is json-s
Fixed destroy handling of `stop`.