Create type-matchers for all nodes in a pattern upfront...

... instead of doing that repeatedly for each nested call, which was quite a
bottle-neck.
adapt in_place.clj