BLIP: extended neighbor discovery

This commit adds a first pass at adding router advertisements and router
solicitations to the neighbor discovery module. This allows nodes to use
stateless autoconfiguration to assign their address rather than by using
DHCPv6.

Nodes can send and receive RS and RA messages. If a prefix information
option is attached to the RA message the node can use it as its prefix
for its address.

This commit adds three more BLIP #define configuration settings:

1. `BLIP_ADDR_AUTOCONF`: if `1`, allow the node to set its address
   based on the prefix received from an RA
2. `BLIP_SEND_ROUTER_SOLICITATIONS`: if `1`, directs the node to send
   RS messages in hopes of finding a router.
3. `BLIP_SEND_ROUTER_ADVERTISEMENTS`: if `1`, the node can act as a
   router and respond to router solicitations.

It should be noted that this implementation is far from complete. It
implements only the most basic functionality.
BLIP: remove debug printf
RPL: update to spec, add autoconf

This commit touches most of the RPL stack. It makes two main changes:

1. Update RPL data structures to be spec compliant. There were still a
couple of lingering data structures that didn't match the spec that are
now updated. Also, some of the processing and assumptions about the
content of received messages has been updated to better match the spec.

2. Add the prefix information option. This option extends DIO messages
to allow nodes to perform autoconfiguration with just RPL messages.

This commit adds a new RPL `#define` configuration option:

1. `RPL_ADDR_AUTOCONF`: if `1`, the node will set its address based on a
prefix received from a DIO message.

These changes have been briefly tested to be compatible with the Contiki
implementation of RPL.