Why the contrapositive proves a given hash is collision resistant?
The reason is that you are trying to make a statement about the hardness of a problem. You want to prove


  A is hard $\Rightarrow$ B is hard


This is a statement about the non-existence of an easy solution. Every solution for A is hard. You want to show


  every solution for A is hard $\Rightarrow$ every solution for B is
  hard


Constructively tackling this problem would require showing that ALL solutions for B are hard but you probably do not even know all solutions.

By inverting the problem you get


  there is a non-hard solution for B $\Rightarrow$ there is a non-hard solution for A


which only requires a statement about all solutions of A. Which you happen to already have. Namely that there is no non-hard solution.