Make `cider-find-file` to do a bit more work in finding the stacktrace file.

Try your best to find the file even if the file is relative. The last resort measure is to iterate through clojure buffers and expand the file in each of those till an existing file has been found. 

This fixes #740 on emacs side by using the relative files provided in stacktrace. Even if #740 is fixed on nrepl side I think this patch doesn't harm and might prove useful in other circumstances.

Based on #761.
> Instead of cl-loop you can use -first. That would result in simpler
> code IMO.

It leads to ugly code. The issue is that -first and --first would return
the buffer and not the path. So it leads to repetitive file expansio
code. I am quite sure `loop` is best here in terms of brevity, besides 2
fors, 1 if and 1 return, everything else is pure code.

Besides that, `-first` is not Clojure idiomatic. Clojure uses `some` for
this and `first` for something else.