Single-molecule detection: applications to ultrasensitive biochemical analysis