[lit] Factor out a results consumer interface for test execution.
 - Also, change TestProvider interface to operate on test indices.
[lit] Put display lock inside the ThreadResultsConsumer.
[lit] Refactor test execution logic into lit.run.Run.
[lit] Implement --max-time support by using provider cancel method.
[lit] Add support for multiprocessing, under --use-processes for now.