Proofs that Yield Nothing but their Validity, or All Languages in NP have Zero-Knowledge Proof Systems