Propagate transitivity when switching modules.

Transitivity is *very* important when we're bundling dependencies.
Without this, the IRC plugin includes all the dependencies of the
parser (including "common"), which means it ends up with its own
version of common classes and can't be called from the rest of the
client. Not having an IRC parser is... unideal. This was very
confusing, which is why the commit message is randomly 8 lines
long. But it's over now; thank you for reading.