Improve error highlighting

Now the error highlighting code extracts the name of the file being
compiled when the error occurred to avoid the problem of highlighting a
line in a wrong file. It also checks for `NO_SOURCE_PATH` filename and
then highlights the error relative to the top level form for which the
evaluation was triggered (in other words we get nice error highlighting
when we do `C-c C-c`). The behavior for `C-x C-e` needs to be tweaked a
bit when evaluating nested forms (since we too little context then), but
I doubt this will bother anyone at this point.

This fixes #283.
Add a couple of ert tests
Replace car, cadr and cdr with CL equivalents

`car`, `cadr` and `cdr` are both ancient and cryptic.
Since we're using cl anyways it's a much better idea to
use `first`, `second` and `rest` (not to mention they'll be
more familiar to Clojure hackers).
Improve the menus appearance a bit

I've divided the menus into sections, reorganized them a bit
and added the version info to both of them.
Add nrepl-clojure-version function

`nrepl-clojure-version` returns the Clojure version of the underlying
process as a string. This function will allows us to evaluate different
Clojure code depending on the version (recall the current problems with
the display of documentation in Clojure 1.5.0).
Merged with master.
Merge pull request #296 from bbatsov/improve-error-highlighting

Improve error highlighting
Merge pull request #297 from bbatsov/cl-style

Replace car, cadr and cdr with CL equivalents
Merge pull request #298 from bbatsov/improve-menus

Improve the menus appearance a bit
Merge pull request #299 from bbatsov/clojure-version

Add nrepl-clojure-version function
Merge with master.