Adding support for orientation

Adding support for orientation and refactoring pretty heavily. The public interface has changes in such a way that everything is self contained inside of `BPMarkdownView`. It's much easier to use now.