Rework inspect-value to recursively invoke itself on collection elements

So I was using `cider-inspect` to play with `clojure.tools.analyzer`, it has these maps that contain a vector that has only one or two values, but those values are really huge maps (like 1.5M lines in printed). And cider-inspect tried to print them blowing everything off (both Emacs and JVM).

So I've made a fix and moreover some changes to `inspect-value`. Details are in the extended commit message. Please tell what you think.