emacs: got rid of merlin-type-buffer global variable.
emacs: use sit-for for highlight timers.
emacs: protects the killing of the process.
emacs: used transfer queues to communicate with merlin

This patch introduces a new way of communication with the merlin
process: transfer queues. They are more robust and cleaner that the
previous solution based on filters. Doing so, the communication layer
is based now on an asynchronous primitive that handles also parsing
the return code. On top of that, a synchronous function is derived,
used for lightweight merlin calls. Asynchronous calls are used for
type retrieving since those can be very big and used to make emacs
hang.
emacs: reports syntax errors.
emacs: removed idle feature.
emacs: little message when emacs is about to parse a long request.
emacs: merlin-send-command accepts a callback in case of error.