Find source locations even when clojure doesn't report them.

Search on emacs side when locations are not reported by clojure (pretty much for all interactive evaluations). Currently the regexp searches for "(def.*"  and works as expected for most common top level declarations.  

For inner declarations (letfn) a more extensive patch would be needed because the stored var for function `ns/foo/fn` is `ns/foo` and I don't see how to get info for inner function with existing middleware. 

This patch addresses #631.
How is this supposed to work according to you? In my tests `file` is always something like `/private/var/folders/32/92h89tr96rs0s79j4ckhhm_r0000gn/T/form-init7260166067410695829.clj` for interactive eval and your code pretty much does nothing as `buffer` gets set to `nil`. This makes a lot of sense as interactively eval-d code either has `NO_FILE` or a temp file as its filename. Guess we'll have to revert this patch and replace it with something that looks in open buffers for a matching buffer ns and greps there.