The people list stored in payload (decoded upon every call())

        :return: The people
        :rtype: list[paps.people.People]
        :raises ProtocolViolation:
            Failed to find marker
            Wrong number of bits in payload -> cannot decode into people

def people(self):
        """
        The people list stored in payload (decoded upon every call())

        :return: The people
        :rtype: list[paps.people.People]
        :raises ProtocolViolation:
            Failed to find marker
            Wrong number of bits in payload -> cannot decode into people
        """
        people = []
        bits = bytearray()
        byts = struct.unpack(
            APPUpdateMessage.fmt.format(len(self.payload)), self.payload
        )[::-1]
        # indices = range(7, -1, -1)
        indices = range(8)
        for aByte in byts[:-1]:
            for i in indices:
                bit = aByte >> i & 1
                bits.append(bit)
        # find marker
        mark = 7
        aByte = byts[-1]
        while aByte >> mark == 0 and mark > 0:
            mark -= 1
        if aByte >> mark != 1:
            raise ProtocolViolation(u"Failed to find marker ({})".format(
                format_data(self.payload)
            ))
        # remove marker and add the rest
        for i in range(mark):
            bit = aByte >> i & 1
            bits.append(bit)

        if len(bits) % Person.BITS_PER_PERSON != 0:
            raise ProtocolViolation(
                u"Payload seems to be malformed"
                u" - Can not decode into people ({})".format(
                    format_data(self.payload)
                )
            )
        # reverse
        i = len(bits)
        while i > 0:
            p = Person()
            # select the bits for this person and bring them in the right order
            # bits is currently in reverse order
            p.from_bits(bits[i - Person.BITS_PER_PERSON:i][::-1])
            people.append(p)
            i -= Person.BITS_PER_PERSON
        return people