Python runtime: different methods vs single method implementation (process xor)
When I was updating process_xor runtime, it occured to me that perhaps it would be better (idiomatic, not performance) to have a single method instead. It should be that method responsibility to detect if the key is a single byte and use an optimised code path, not the compiler. I would like @GreyCat to speak out on this issue, because when we get to implementing UTF16/32 strings, we will need some additional methods (read_bytes_term_multi and bytes_strip_right_multi) and I would like to know if that should also be preferred as different methods, or we should consolidate. 

```py
    @staticmethod
    def process_xor_one(data, key):
        if key == 0:
            return data

        if PY2:
            return bytes(bytearray(v ^ key for v in bytearray(data)))
        else:
            return bytes(v ^ key for v in data)

    @staticmethod
    def process_xor_many(data, key):
        if key == b'\x00' * len(key):
            return data

        if PY2:
            return bytes(bytearray(a ^ b for a, b in zip(bytearray(data), itertools.cycle(bytearray(key)))))
        else:
            return bytes(a ^ b for a, b in zip(data, itertools.cycle(key)))
```