bugfix: bits >= 16 in Bitset now works correctly

Components with indices >= 16 were behaving erratically due to an
error in numberOfTrailingZeros. For some reason, there was an
extraneous right shift by 16, which ended up making all numbers
with trailing zeroes >= 16 to appear as though they always had
17 trailing zeroes (W...T...F!)

This is super-scary, because all components with indices >= 16
are considered equivalent by the systems! They are all seen as
component with index 17...

This was caught was through a system that just happened to
require a component with an index of 16, which, as far as the
game could tell, never exists.

This underscores the importance of unit testing for highly used
utilities such as this.