Fix a bug where all OptionValue objects had the same underlying forwardings.

This wasn't seen earlier because in practice all tasks migrated so far had
disjoint option names.

This was exposed when I migrated two unrelated tasks that happened to have
an identically named option (--skip).

Testing Done:
CI passed.

Verified that this fixes the name collision issue that triggered its discovery in the first place.

Reviewed at https://rbcommons.com/s/twitter/r/1229/