Self-adjoint Extensions in Quantum Mechanics: General Theory and Applications to Schrödinger and Dirac Equations with Singular Potentials (Progress in Mathematical Physics)