Allow destination to be a range of IP addresses for security group rules

* Refactored rule validation for tcp, udp, and icmp into their own classes.

[#71585396,#72741200]