It has to be Tyrion.
The prophecy obviously was bullshit. But she believed it, so she made the life miserable for Tyrion, and so Tyrion would kill her.
If she didn't hear the prophecy, she wouldn't have acted that way towards Tyrion, and he wouldn't have killed her.
So a self fulfilling prophecy. The witch was just spouting random bullshit, but Cersei the bitch she is, did all those bad things to survive from something that wasn't going to happen, in process making it happen.
To be fair, that might sound more Abercrombie than Martin.