Issue #16104: Allow compileall to do parallel bytecode compilation.

Both compileall.compile_dir() and the CLI for compileall now allow for
specifying how many workers to use (or 0 to use all CPUs).

Thanks to Claudiu Popa for the patch.
inspect.Signature: Fix discrepancy between __eq__ and __hash__.

Issue #20334. Thanks to Antony Lee for bug report & initial patch.