remove :gen-class (lein run doesn't need it)
simplify compy

This definition is slower on my machine (`lein run` slows from ~18 ms to
~30 ms) but it's shorter and makes the relative importance of the
different variables clearer.
convert two-arm cond to if
rewrite find-path as a for comprehension

YMMV here but I find for comprehensions to be clearer than loop/recur
blocks.
rewrite main algorithm

There's a few things going on here:

  * I reject locations which have already been visited up front with the
    call to remove, rather than adding them to ignore them later with an
    extra cond branch
  * I use closed as a function with remove (which returns the argument
    given if and only if it is in the set, otherwise nil)
  * get-children returns Locations rather than Nodes

I'm not sure this is better than what went before, but I'm leaving the
commit in just so you can see a different way of doing things.