Fix literal block

Summary:
Also try to consolidate lines parser code for literal and code
blocks by adding an intermediate ##PhutilRemarkupEngineMultiLineEnclosedBlockRule##
class.

Test Plan: Tested literal and code blocks in sandbox.

Reviewers: epriestley

Reviewed By: epriestley

CC: ldbrandy, Korvin, aran, wez

Differential Revision: https://secure.phabricator.com/D6848
Provide explicit remarkup block priorities

Summary:
D6848 fixed some issues with the `%%%` literal block syntax, but this had a side effect of breaking list syntax //if// the blocks were added in a different order than libphutil adds them. It also created an order-dependent issue with the space-only rules in the code block.

To fix this:

  - Add explicit block priorities so the order they're declared in doesn't matter. We did this for inline rules some time ago, and it seems to work well.
  - Explicitly break the input order of blocks to force the priority rules to take effect during unit tests.
  - Split the code and literal blocks apart again, so the space-only logic doesn't run in the literal block. The complexity to keep them inheriting a common parent while separating this logic out didn't seem worthwhile.

Test Plan: The unit tests from D6848 still pass.

Reviewers: andrewjcg, btrahan, chad

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D6889