Don't crash when exchangeSubviewAtIndex:withSubviewAtIndex: is called with invalid indices.
Also guard against exchangeSubview indices being negative. 

The UIView method doesn't crash in this case either.
Merge branch 'defensiveExchangeSubviews'