MPLS Decoder, v3

This update to the MPLS decoder sets events on labels that should not be seen on the wire and adds unit tests for them.  TM_ECODE_OK returned instead of fail per the comment on the previous PR.

Buildbot output:
- PR build: https://buildbot.openinfosecfoundation.org/builders/jasonish/builds/1
- PR pcaps: https://buildbot.openinfosecfoundation.org/builders/jasonish-pcap/builds/1

While there are some special labels that are decoded above that tell the nature of the encapsulated traffic, I've rarely ever seen them.  Usually you get an MPLS label followed immediately by IPv4, Ethernet or IPv6 with no indication of what the MPLS payload is.  This makes a best guess.

Snort resolves this by letting you specify a single MPLS payload type on the command line.  Another option would be to configure a label switch where you specify the payload types of each label, perhaps with a default, or even an "auto" which would be like the code above.