Be less hacky with recursive middleware
Now we're cooking with Crisco!

Using prj/add-modules so our profiles can be unmerged successfully. Also
converting standard profiles into composite ones to include all the
ancestors profiles, if any. I had to vary-meta for :profiles to make the
added ones "merge-able", which may be a bug in add-profiles.

I'm losing memoization for the meantime. I don't think it's a problem,
but it can lead to unexpected results at the repl.