Disable Seccomp when running old Linux kernel

Get kernel version when building, as well as testing for Seccomp headers

Fix #586
Use semver to compare kernel versions properly
Add semver, for build system
Define `_XPG4_2` on SunOS

This brings `strcasecmp`.
Disable stack smashing protection on SunOS

Even despite linking with `-lssp`, building with stack smashing
protection on SmartOS causes:

    Undefined                       first referenced
     symbol                             in file
    __stack_chk_fail_local              build_sunos/crypto_AddressCalc_c.o  (symbol scope specifies local binding)
    ld: fatal: symbol referencing errors. No output written to ./privatetopublic
Link necessary libraries on SunOS
Migrate `Message_shift` calls to new API
Change `Except_raise` calls to `Except_throw`
Remove an unused `net/if_tun.h` include
Replace `net/if_tun.h` include with two `#define`s

Some illumos distributions (namely SmartOS) don't ship `net/if_tun.h`,
from which we only need those two IOCTL constants.
Ignore `build_sunos` directory
Store ~/.cjdnsadmin path in variable
Remove duplicate y/n code
Rewrote code to find cjdroute binary
Rewrote code to find cjdroute config
Stop creating/overwriting debug.log files
Add load_cjdroute_conf
Rewrite check if ~/.cjdnsadmin already exists
Use os.path.expanduser to detect home folder
Rename validjson function to cleanup_config