Implement visitor pattern for Markdown rendering

Markdown rendering now uses BPAttributedTextVisitor in conjunction with
BPElementWalker.

This method of traversing the tree should make it easier to finish implementing proper accessibility support (#111).