[Fix #776, #773, #733] Rewrite bencode parser

I have rewritten the decoder. These are the main changes:

  -  require MELPA `queue` package. It used to be part of emacs, but not anymore.
  - nREPL dicts are now plists and accessor api is given by `nrepl-dict-p`,
    `nrepl-dict-get` and `nrepl-dict-put`.
  - nested stack is used for decoded messages to avoid re-parsing of incomplete messages
  - queues are used for received raw strings from server and for decoded requests

A couple of notes:

* A lot of code was relying on internal representation of dicts. I have have changed everything I could find, but there might be more. Particularly, I cannot find an example to trigger `cider--var-choice`. So please have a look or provide a simple example with multiple candidates.
* Examples in #773 and #733 will run fast on C-c C-e and C-c C-p but when you run them in the REPL. It has nothing to do with decoder but with the chocked emacs redisplay  (I guess, it's related to #228). I will have a look at it later when the comint part has been sorted out.