Improve literal mode.

* Expect a blank line as delimiter between text and code (#2821).
* Don't change indentation of code. It is not necessary and leads to
  erroneous locationData. (#2835)
* Don't modify blank lines and reverse the change in the lexer.
* Don't ignore indentation with mixed whitespace.

There are still open problems:
* Some markdown processors will need an indentation of 8 space in/after a list to indicate code (nested lists require 4 more spaces for each level). So it's either markdown-parsing or some restriction on support.
* Multiline tokens can consume the non-code part of the document. E.g.

        some text

            str = """

        this line will get a # and be a string

            """