Fault Detection and Diagnosis in Nonlinear Systems: A Differential and Algebraic Viewpoint (Understanding Complex Systems)