Use IPy for IP check

While socket.inet_aton does correctly identify addresses it can return
very unexpected results such as '123.123123' being interpreted as
'123.1.224.243'. This causes issues because IPy won't interpret
'123.123123' as an IPv4 address at all.

Switching to IPy for determining if something is an IPv4 or IPv6 address
fixes this. Downside/bug/feature being that '123.123123' won't be
interpreted as an IP address at all.

Fixes #453.
Merge branch '453-ip-check'