a WORKING substitution-based quine generator

working my way up from mini:
- explicit quoting to distinguish between functions and things that
  can appear quoted
- functions evaluates to themselves, and are restored to be first class
- so, app case explicitly says it's not one of the previous cases
- lists are restored to be of any arity

things to notice:
- quines are equal up to alpha-renaming
- code is ugly