Fix a lexer issue with SimpleOptions and backslashes in unterminated quotes

Summary: The SimpleOptions lexer has an error when parsing a line like `a="\`, where the lexer can't accept the backslash inside the unterminated quotes.

Test Plan: Added failing unit tests; they now pass.

Reviewers: btrahan, SEJeff

Reviewed By: SEJeff

CC: SEJeff, aran

Differential Revision: https://secure.phabricator.com/D7323
Add some topographical sorting stuff

Summary: I need this to be able to apply dependencies in a working order for arc patch (T479). I feel like the names are wonky here so I appreciate suggestions. Also maybe more test cases?

Test Plan: ran unit tests

Reviewers: epriestley

Reviewed By: epriestley

CC: Korvin, epriestley, aran

Differential Revision: https://secure.phabricator.com/D7315
Expand Remarkup interpreter block capabilities a little bit

Summary:
Ref T3274. Ref T3591. Ref T3964. Allows interpreters to access the engine so they can check for text mode, grab the viewer/config, etc.

Also, make the unit tests not depend on trailing whitespace to pass.

Test Plan: See next revision.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3274, T3591, T3964

Differential Revision: https://secure.phabricator.com/D7331
Be more liberal about whitespace in the "interpreter block" rule

Summary: Currently, we require `x (y) {{{z}}}`. Permit less whitespace, `x(y){{{z}}}`.

Test Plan: Unit test.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D7338
Merge remote-tracking branch 'upstream/master'