Add IP Address Validation

This Pull Request adds functionality for validating strings either as a generic IP address (IPv4 (CIDR optional), IPv6 (CIDR optional), or IPvFuture). The validation is done off of the related RFCs (RFC 791 (IPv4) RFC 4291 (IPv6) and RFC 4632 (CIDR)) and provides the standard error messages to the library.