Fix ghci tab completion of duplicate identifiers.

Summary:
Currently, if the same identifier is imported via multiple modules, ghci
shows multiple completions for it. Use the nub of the completions
instead so that it only shows up once.

Signed-off-by: Shachaf Ben-Kiki <shachaf@gmail.com>

Test Plan: by hand

Reviewers: simonmar, austin, hvr

Reviewed By: austin, hvr

Subscribers: hvr, simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D58
Avoid deadlock in freeTask (called by forkProcess)

Summary: Documented in more detail inline with the change.

Test Plan: validate

Reviewers: austin, simonmar, duncan

Reviewed By: austin, simonmar, duncan

Subscribers: simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D59
Acquire all_tasks_mutex in forkProcess

Summary: (for the same reason that we acquire all the other mutexes)

Test Plan: validate

Reviewers: simonmar, austin, duncan

Reviewed By: simonmar, austin, duncan

Subscribers: simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D60