Weak measurements: From measuring incompatible observables and testing quantum contextuality to protective measurements