How to Build a Fault-Tolerant Quantum Computer