Single Photon Detectors: Physics and Applications