Principles of Quantum Computation and Information – Volume I: Basic Concepts