This patch relaxes the restriction on BitSet so that it can take mozilla::Atomic as its storage type. The Reference assignment operator is changed so that it results in a single update rather than a separate read and update that would not be atomic when used with atomic storage. Tests are added for atomic storage and to exercise the assignment operator. Differential Revision: https://phabricator.services.mozilla.com/D259230