Make ip::address indepedent of IP versions.

The ip::address class no longer uses the version specific types
in its interface (although it still does so in its specification).
Add noexcept specifier.