cache toText and hash_value of IOAddress instances
toText and hash_value are expensive operations in particular for IPv6 addresses. The idea is to cache the result in these methods in IOAddress instances in mutable Optional new members.
Need some benchmark to see if the performance win is great enough to justify the complexity and the greater memory footprint.