Make lazy maps lazier, and other improvements
Make lazy maps lazier, and other improvements

* Add LazyMapEntry type and return it from LazyMaps whenever map entries
  are requested. This prevents e.g. (keys some-lazy-map) from realizing
  the values of the map.
* Implement .equiv from IPersistentCollection for LazyMap. This allows
  LazyMaps to be compared using =.
* Define a convenience macro, extend-print, for generating
  multimethod extensions for print-dup and print-method. This eliminates
  the repetitive code previously used to extend both of the multimethods
  with the same definition, for three separate types (PlaceholderText,
  LazyMap, and LazyMapEntry).

thinktopic/cortex,thinktopic/cortex,thinktopic/cortex,thinktopic/cortex