Merge FifoCommandRunnable into Decode

No idea if this change is desirable.
The size parameter isn't const, it should be decreased after every call. So we can't read behind the buffer.