What is a non-deterministic Turing machine, and how does it relate to NP problems?