fix NFV tests to include rate_limiter
new rate_limited test
[neutron] Move tunnel and QoS into binding:profile

Move parameters from binding:vif_details into binding:profile. This
makes life easier for the Neutron administrator because
binding:profile can be updated at any time using 'neutron
port-update'. (vif_details is read-only to the administrator.) This
means that features like tunneling can be enabled/disabled dynamically
at any time.

The tunnel parameters are moved as-is.

Bandwidth rate limits are now specified with a specific
'rx_police_gbps' parameter. If this is specified then a strict rate
limit will be enforced at the given rate. This feature is orthogonal
to the vif_details.zone_gbps parameter, which does not represent a
strict limit (and is mostly used to share load across physical ports).
Merge Javier's rate_limiter fixes with the binding.profile branch.

Resolved conflict that binding.profile branch moved the rate limiter
configuration into a separate 'rx_police_gbps' paramter.
receive checksum offload
transmit checksum offload
the "insert checksum" bits of TXDESC must reflect the current context
precalculate the offload flags together with the context descriptor
check if the packet needs checksum before asking the chip to do it
add offload support for SCTP
test: start sending doctored packets to see if bad checksums are detected and if good ones can be inserted
adapt new selftest to #293 merge
a string value of "nil" is not a valid default anymore
the sink app can call an optional callback(p) before discarding the packet
test: the packet must have 0000 in the relevants checksum fields
clear checksum fields for offload to fill