Further DRY the Signal modules
Fix bug in BitVector's ++#

It previously shifted by the wrong amount
Add Bits instance for "BitVector" and "Vec n a"