[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
  - no more `nrepl-decoder-buffer`

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 <kbd>C-c C-e</kbd> and <kbd>C-c C-p</kbd> but  slow 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.
* `accept-process-output` trick in #616 is not necessary anymore.
I'm not sure those usage examples are needed (as there we also have tests for them). If we'll be keeping them it'll be useful to include their return values as well:

```
; (nrepl-dict-to-alist '(dict "abc" 123 "bbc" 345) t) => ....
```