Sprache now comes from a Nuget
Mixed paragraph end detect into item stream
Tokenizing paragraph endings and then aggregating paragraph lines

First, we use a regex to locate paragraph endings and throw a token into the stream to make parsing for it easire. This could likely get replaced by smarter parsing in the future.

Second, we parse the text getting an array of items where there are ParagraphEnd items seperating Line items.

Third, we aggregate the Lines and ParagraphEnd Items into Paragraph items.

Rendering html seperates lines by <br/> and wraps <p> tags around paragraphs.
*oops* Web project was using contact authentication by default
Email logs were not aggregated correctly
Cleaned up tests a bit