Python runtime: process ROL ROR using dict cache
Work item. In Construct, I found out that it is performance wise better to not use byte-to-byte functions directly but pre-compute its inputs/outputs into a dict. This optimisation applies to even relatively simple/fast functions because dict lookup is one of the fastest operations in Python there is. For example:
```py
    INT2BYTE_CACHE = {i:bytes((i,)) for i in range(256)}
    def int2byte(character):
        """Converts (0 through 255) integer into b'...' character."""
        return INT2BYTE_CACHE[character]
```
I think same principle could be applied to:
```py
    def process_rotate_left(data, amount, group_size):
        r = bytearray(data)
        # precomputed = [(i << amount) & 0xff | (i >> anti_amount) 
        # for i in range(256)]
        for i in range(len(r)):
            # r[i] = precomputed[r[i]]
            r[i] = (r[i] << amount) & 0xff | (r[i] >> anti_amount)
        return bytes(r)
```