Added beginings of unit testing

This needs much more comprehensive unit tests to really be useful

Must find a proper C unit test framework to use
Added checks to command line options

Needs better bounds checks

Needs a printout of use
First modifications towards IPv6 support
First additional functions work properly
initial commit to switch to threads

TODO:

Remove raw socket for UDP

remove unused functions

remove comp_det and put everything in main()

implement ipv6 header
implement ipv6 icmp
Fixed issue with checksum
Begginings of IPv6 introduced

TODO:
1) terminate whole application on error, not just one thread
2) clean up ipv4 vs ipv6 implementations
3) add unit tests for functions
4) reorganize code
6) remove useless functions
7) move most of the program to main()
changed pthread_exit() to return, fixed many warnings
updates for ipv6
Merge branch 'testing' of https://github.com/ilovepi/NCD into testing

Conflicts:
	ncd.c
changed assignment of thread return code
updated local IP address

TODO:
correctly assign the local IP address, or switch to non-raw udp-sending
so the kernel can correctly set the local IP
 updated checksum access to BSD only
Removed  unnecessary parameters from comp_det()

Added file for unit testing
Removed some unused functions
Refactored a global variable name
more unit testing
updates for unit tests
Removing raw UDP
removed debug printfs
Easy functions have a basic unit test

TODO
Finish unit tests for hard cases
maybe add mocks
add more test cases, ie function_works is bad
separate out more tests
identify functions that do too much
find examples of networking unit tests
Added file support for generic middlebox testing