complete rewrite without Content*, PropertySheet* types and with Kmett's lens package.
Merge branch 'disassemble-most-types'