Problem: 'zinterface' is a dangerous class name

Under MSVC, which compiles the code as C++, 'interface' is a reserved
word and this creates regular portability breaks in CZMQ, or forces
us to use variable names that don't match the class name.

Solution: rename the class to 'ziface'.
Renamed zlist_curr to zlist_item
Problem: interface class was asking for some fixes

- return name, not bool, on first/next
- simpler internals, without item structure
- removed bits and pieces of unnecessary code :-)
- somewhat shorter and simpler IMO
Problem: ziface is a lousy name

Solution: use ziflist, which is fairly clear to anyone used to network
admin tools like ifconfig. Also the name makes it clear what methods
like ziflist_first and ziflist_next do.
Restore selftests

czmq_selftest was mostly silenced to speed up ziflist testing.
Fixed temporary hack in ziflist_reload

Was disabling HAVE_GETIFADDRS to test ioctl code path. This commit
re-enables the HAVE_GETIFADDRS code path.
Fixed memory leak on self->head
Problem: ziflist_reload not freeing old values

Caused memory leakage. Added selftest case for this.

Solution: free old values, if any, before doing reload.