Only \r\n, \n\r, \r, \n and \f will be treat as line break characters -- No longer use preg_replace

As the preg_replace('~\R~') will actually breaks some UTF-8  character some how.

And the '~\R~u' will break the test case: BaseMarkdownTest::testInvalidUtf8 as it replace too many i guess.

I also add the test data that actually saved in UTF-8 into test case. See unicode.md and unicode.html for detail.