Optimization in Development Tools
Refactor threaded parsing, use long lived worker pattern.
Not only is the code much cleaner, we also have the added advantage
of not spinning up new threads whenever we parse a new file.
Furthermore the signals have been cleaned up to remove the unsafe
accessal of the old ParseThread once it has finished parsing.