func NewSlice(l int) []byte {
	remainder := l % 8
	if remainder != 0 {
		remainder = 1
	}
	return make([]byte, l/8+remainder)
}
NewSlice creates a new byteslice with length l (in bits).
The actual size in bits might be up to 7 bits larger because
they are stored in a byteslice.
package bitmap
import "sync"
var (
	tA = [8]byte{1, 2, 4, 8, 16, 32, 64, 128}
	tB = [8]byte{254, 253, 251, 247, 239, 223, 191, 127}
)
func dataOrCopy(d []byte, c bool) []byte {
	if !c {
		return d
	}
	ndata := make([]byte, len(d))
	copy(ndata, d)
	return ndata
}