TextBlock style update 

Hi all,

This one passes tests and I ran through a few samples and it seems to behave as expected!

I did make a bunch of changes that I'll comment on inline which should be reviewed. I'm pretty sure this can be improved in a couple of places but I'm not sure how.

@jasonrclark I'm not sure how this should mix with #832. Based on what I see I think they should play nicely.
The renaming of things here to `dsl_style` makes sense to me when we're assigning `style: dsl_style`, but I'm confused what the `dsl_style: dsl_style` is there. The specs are accessing `dsl_style` by the `let` for it here, not calling `dsl.dsl_style` (and I don't think the production code calls that method either), so maybe it's unnecessary?