Improve HTML cleaning and text extraction. Closes #10

- We are explicitly using Jsoup.clean(html, Whitelist.relaxed()) to sanity and clean the HTML.
- We traverse the Element tree when extracting the text and we append extra white space after each node content to prevent connecting the end word with the first one from the next node.
- Breaking change: removal of formatting from <pre/> blocks.