Lenient Comment Parsing

These changes make the parsing of `%!TEX program` (for the traditional_builder) and `%!TEX root` more lenient. In particular:

* These comments will be handled as long as they are in the first 20 lines of input (consistent with TeXShop)
* Initial whitespace (only) before the comments is allowed
* Multiple comment marks are allowed, e.g. `%% !TEX program = ...`, closing #283