Add an auth adapter for Mozilla Persona

Summary: Ref T3958. Adds the adapter for Persona.

Test Plan: See next revision.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3958

Differential Revision: https://secure.phabricator.com/D7312
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