Zimbabwe has caused the first major upset at the T20 World Cup with a surprise 23-run win against Australia in Colombo.