Fix bug in datagram:push()

The parse iovec index was not properly updated when a new buffer is
prepended to the packet.
Fix nd_light with respect to link-layer address options

Send source link-layer address option with neighbor solicitations.

Ignore options in received neighbor advertisements. Self-originated
solicited neighbor advertisement are created from a pre-fabricated
packet that contains the target link-layer address option instead of
turning around the incoming neighbor solicitation.

Bug fix: The nh table as well as the pre-allocated datagram object
were erroneously added to the class instead of the instance.  This
caused next-hop resolution to be executed only for one instance of
nd_light running in the same app.
Have nd_light overwrite ethernet headers instead of adding them

In order to maintain symmetry, the semantics of nd_light are changed
such that it expects full Ethernet frames on its north port.  Instead
of adding the header, it merely overwrites it.

The rationale for this change is as follows.  It is desrieable to keep
the Ethernet header in the packets received from the south port when
transmitting them to the north port, which will allow the receiving
app to inspect the entire packet.  In particular, this is necessary if
BPF filters need to be applied to the packet higher up in the app
chain.  To obey the principle of least astonishment and to keep the
interface symmetric, the northbound apps must make sure that the
packets passed to nd_light contain an Ethernet header as well, but the
contents is irrelevant.
Make configuration of nd_light more robust

Accept MAC and IPv6 addresses as strings and perform conversion.
Merge pull request #273 from alexandergall/nd_light-fix

Fix issues with nd_light