Performance Tweak 6: A few optimizations in frequent code

* Avoid creating a list when not needed
* Don't use html.fragment_fromstring in the outer-most layer application on a node

There's definitely room for improvement when applying layers; right now each node gets build into html and converted back into a string once per applicable layer. It's a messy operation though, and my attempts to speed it up failed miserably, so I'm content with this for now.

On Interp, ~6% speed up