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

Ok, all that is true, but I have just discovered that we cannot keep the "ns" as an argument to `:load-file` op. It doesn't work on first evaluation `  status  ("namespace-not-found" "error" "done")`.  So the `nrepl-browser-ns` will stay "user" unless we remove its auto assignment in `nrepl-dbind-response`.  In any case this will not cause any issues with interactive evaluation because `nrepl-buffer-ns` is no longer used for that.