Multiplies this by another I8, wrapping around on overflow/underflow.
I8 operator *(I8 other) => I8((value * other.value).toSigned(8));