Only apply textarea fix to textareas; refactor

Textareas are the only preserved tag that is editable, so we don't need to
recode the newline for <pre> or <code> tags. With this and the last few
preceding commits we bring Haml 4.x's performance nearly back in line with Haml
3.1.4.

Haml 3.1.4:

                           user     system      total        real
compiled haml pretty   0.330000   0.000000   0.330000 (  0.332720)
compiled haml ugly     0.180000   0.000000   0.180000 (  0.173543)
cached haml pretty     0.740000   0.000000   0.740000 (  0.740294)
cached haml ugly       0.490000   0.000000   0.490000 (  0.497688)

Haml 3.1.8:

                           user     system      total        real
compiled haml pretty   0.600000   0.000000   0.600000 (  0.605575)
compiled haml ugly     0.210000   0.000000   0.210000 (  0.210508)
cached haml pretty     1.240000   0.010000   1.250000 (  1.256737)
cached haml ugly       0.520000   0.000000   0.520000 (  0.527566)

Haml 4.0.0:

                           user     system      total        real
compiled haml pretty   0.720000   0.000000   0.720000 (  0.754891)
compiled haml ugly     0.300000   0.000000   0.300000 (  0.296439)
cached haml pretty     1.300000   0.000000   1.300000 (  1.301510)
cached haml ugly       0.570000   0.000000   0.570000 (  0.578155)

This commit:

                           user     system      total        real
compiled haml pretty   0.430000   0.010000   0.440000 (  0.429153)
compiled haml ugly     0.220000   0.000000   0.220000 (  0.220758)
cached haml pretty     0.810000   0.000000   0.810000 (  0.809804)
cached haml ugly       0.510000   0.000000   0.510000 (  0.516821)
Document Haml 4.0 textarea behavior