code: public int getTotalBits() {
      //this total calculates and removes the bits reserved for "offset"
      //   between the different children.
      int total = 0;
      EncodedElement iter = this;
      while(iter != null) {
        total += iter.usableBits - iter.offset;
        iter = iter.next;
      }
      return total;
    }
docs: Total number of usable bits stored by this entire list. This sums the
  difference of each list element's "usableBits" and "offset".
  @return Total valid bits in this list.