Quantum Graphs and Their Applications