Quantum Cellular Automata: Theory and Applications