Intersection Homology & Perverse Sheaves. with Applications to Singularities