Refactor IpV4 validator

- 100% code coverage
- easier to read
- add tests for null/empty string input
First IpV6 tests

- validate null/empty string
- validate full IPv6 addresses in hex notation