Some refactoring of ICMP classes
Fixes based on live device testing
Add a few example programs and initial icmp tests