Fix {If,Switch}#always_returns?

The method gave wrong result for |if| statements without one of the
branches and for |switch| statements without |default|. This resulted in
removing |nil|s even in situations where it wasn't safe.