Separate blackhighlighter widget/component from the demo site, closes #29