What is a “witness” in zero knowledge proof? I've seen the term "witness" tossed around when talking about knowledge extractors, but I have no idea what it means. I can't find a definition. 

What is a “witness” in zero knowledge proof?
A witness for an NP statement is a piece of information that allows you to efficiently verify that the statement is true. For example, if the statement is that there exists a Hamiltonian cycle in some graph, a witness would be such cycle. Given a cycle, one can efficiently check whether it is a valid Hamiltonian cycle, but finding such cycle is difficult.

Knowledge extractors are used in the definition of proofs of knowledge. There, you don't just prove that some statement is true, but that you know a witness for this statement. A machine knowing something is defined via the existence of a knowledge extractor that, roughly speaking, interacts with the machine and then output the (extracted) witness.