make List class, store items in blocks array

- additionally, pull render and content up to AbstractBlock
speed optimizations
add content_model to block, rename buffer to lines
convert more ERB templates to string templates