Implement new constructor for class BidirectionalDictionary with new equality comparer of bit array. This is important because when the bit arrays behaves as keys during dictionary get method the default Equals method of bit array has unexpected behavior. It involves modification in BinaryEncodingUtil also.
Return to original representation of bit array (which is contrary to intuition) because the decoding is simpler in this way.
Implement decoding method in BinaryEncodingUtil.