A lot of fixes to the neighbor table patch

This is a pretty massive patch to the neighbor table rewrite. We did a thorough walk-through of the code, tested it in a bunch of scenarios in Cooja, and ran it through several different testbeds. With these patches, the resulting system is now very stable and is able to recover from a variety of problems such as root loss and node mobility.

There are a few smaller bugfixes that were found when we were running the code in Cooja, and a number of rewrites and additions that were needed now that neighbor tables could actually return NULL addresses. There is also a rewrite of the list management code in the `uip-ds6-route.c` code, that was using the list library in a way which was dangerous (it used a list in a struct without using the `LIST_STRUCT()` construct).

There are also a bunch of new regression tests.