[wip] Add DSL for after_install and similar blocks

Refs #5268

This is just a prototype version. Some tests are broken and others missing, but I wanted to get feedback on the general direction and style advice so that I can continue working.
In Lisp there is `caar`.  Ruby is somewhat Lispy, but seems to lack this.