Refactor the interactive evaluation API

Before continuing on #815 I couldn't stop myself from cleaning up the interactive eval API. 

There is now one API entry point - `cider-interactive-eval`. All other commands are based on it. I am removing a couple of unnecessary API functions.  Entries like `cider-interactive-eval-in-repl` add naming redundancy with the corresponding handler. You can simply call `cider-interactive-eval` with `eval-in-repl` handler and the code will be just as clear. 

---- 
Other changes:

  - The recent "dummy-file" change to interactive eval touched only two interactive 
    eval functions.  This patch completes the change.

  - Simplify the code by removing unused or unnecessary API functions:
    `cider-interactive-eval-print`, `cider-popup-eval-print-handler`,
    `cider-popup-eval-print`, `cider-interactive-eval-to-repl`

  - Rename `cider-interactive-eval-print-handler` -> `cider-eval-print-handler`.

  - Bring all interactive eval functionality into one place and arrange
    functions in a logical order.

  - `buffer` argument to interactive eval handlers is optional


> This op those not support the ns param. See the reference.

It does not but it return "ns" in the response and if it's not supplied
the response ns is either "user" or some other arbitrary (as far as I
can tell) ns.

Cider relies on returned ns for setting `nrepl-buffer-ns`. So this
actually fixes #814. Forgot to mention that.

I don't like `nrepl-buffer-ns` tracking as it's currently implemented
and if I understand correctly you are not found of it either. But for
time being let this be there.