Fix completion mechanism
Fix completion mechanism

Problem
-------
Message body for the "complete_request" [changed][1].

> Changed in version 5.0: line, block, and text keys are removed in
favor of a single code for context. Lexing is up to the kernel.

Solution
--------

Update type definition for the message body.

  header: {..., "msg_type":"complete_request"}
  parent: {}
  content: {"code":"List.","cursor_pos":5}

Tested
------

Manually.

  header: {....,"msg_type":"complete_reply"}
  content: {"matches":["List.length","List.hd",...,"List.merge"],
            "matched_text":"List.","status":"ok"}

Actually `matched_text` is removed from the reply body too in favor
of `cursor_start` and `cursor_end`. By default, if missing,
they describe the same text that was sent in the request.

[1]: https://ipython.org/ipython-doc/3/development/messaging.html#completion

andrewray/iocaml,andrewray/iocaml,andrewray/iocaml,andrewray/iocaml