Refactor of the way the IPv4 data object works to better support IPv6 an...

The changes are designed to have better support for InetAddresses and to adopt IPv6 support.  This pull request is to allow for a holistic approach to addressing the design of the IP data objects and so will address several tickets at once, notabley #37, #120, and #127.

Will squash and add ticket numbers before merge.