bit_reader.go
func limitBitReader(br bitReader, n int, err error) bitReader {
	return &limitedBitReader{br, n, err}
}
func limitBitReader(br bitReader, n int, err error) bitReader {
	return &limitedBitReader{br, n, err}
}
// limitBitReader returns a bitReader that reads from br and stops with io.EOF after n bits.
// If br returns an io.EOF before reading n bits, err is returned.