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.
> Having both line and pos is confusing. I'd suggest using only pos and converting a line value to a pos when this is invoked. 

How do you convert lines into pos? Clojure errors have lines. Elisp finds pos. Conversion is pretty computationally intensive. I see it as a flexible implementation. Users can supply either line or pos or even both. Non-standard, but not a bad api IMO.