Principles of Quantum Computation and Information: A Comprehensive Textbook