Adds tests for the Live Linux formats, int: ring: and pcapint:

Launch from test/do-live-tests.sh (needs root)
Alternatively test/netns-env <command>, bash can be used here useful for debugging etc.

This runs tests in separate network namespace with two virtual adapters, this is isolated from the kernels influence so that the only traffic is that which we create.
* test-live.c - Tests sending and receiving 100 packets from one format to another between to virtual ports
                               * Tests read/write, wirelength, capturelength, packet order/integrity, timestamps, ability to set direction/snap lengths  and trace statistics
* test-live-snaplen.c Tests that snap length works correctly via trace_config(), does basic checks on the wire and capture lengths returned

Limitations
* Doesn't support BSD yet
* DPDK included but probably not working in master
* Doesn't test BPF filters
* Requires root to run

Found some existing issues :(, fixes to which will be in the following commits.
Fix executable flags on scripts
Fix a really old (since 2006) and bad bug in the int: format.

The wire length returned when using trace_config(trace, TRACE_OPTION_SNAPLEN, ...) will be limited to the capture length (well +4 due to MAC checksum adjustment) rather than the actual wire length.
Stop the pcap format appearing to accept setting directions which it doesn't support instead return an error.
This also removes the overhead of promoting the packet to include an additional header with this data in this case.
Note pcap supports IN/OUT just not OTHER and UNKNOWN.
Move wandiocat to its own subdir

This seems the easiest way to solve the parallel build issue
given our current recursive build structure.
Fix strangeness when using bogus filters on int:

Changes:
 * Make sure trace_start returns -1 for int: if the provided filter
   failed to compile, rather than falling through to using
   trace_apply_filter on the first packet (and failing). This is also
   more consistent with what pcapint: already does.
 * Check for -1 return value from trace_apply_filter, rather than
   treating -1 as a successful match.
Fix trace_event errors with pcapint: and filters

If a packet arrives between the time a live pcap capture
is created and the time the filter is set, the pcap fd acts
as though there is a packet available even if pcap_next_ex will
time out due to no packets matching the filter.

This can wreak havoc with trace_event, which relies on select
to know whether it will be able to call trace_read_packet
without blocking. If the filter doesn't match any packets,
trace_read_packet will block forever -- defeat the purpose of
using trace_event in the first place.

The solution is to always try to consume a packet immediately after
calling pcap_setfilter. Any "bad" packets will be removed from the
queue until a packet that matches the filter is hit or pcap_next_ex
times out. Either way, select should work properly again, at the
cost of possible one legit packet being consumed during startup.

Thanks to Mike Schiffman for reporting this bug (and the previous
one re: inconsistent behaviour when the filter is bogus).
Add ./bootstrap.sh to install instructions

Anyone who clones us from github will need to run bootstrap
before they can do the standard ./configure; make; make install
routine.

Add mention of INSTALL to README.
change buffer length types from int to off_t

previously the length of the buffer in the peek reader was stored in an int. when
a large read (> INT32_MAX) was requested, the buffer-resize malloc (ior-peek.c:129)
would fail, and therefore trigger the assert on line 135.

this bug was triggered, and the fix tested, on FreeBSD 10.
Merge branch 'fix_wandio_peek_large_read' of https://github.com/alistairking/libtrace into develop
Don't increment accepted_packets in trace_event

For formats that use the normal trace_event_device and
trace_event_trace functions to implement trace_event functionality,
this was resulting in accepted_packets being incremented twice:
once in the call to trace_read_packet within the standard event
function and once again in trace_event.

Removed the increment from trace_event and updated all formats
that provide a custom trace_event implementation to make sure they
either call trace_read_packet themselves or update the counters
properly (with the former preferred wherever possible).

Thanks to Alistair King for finding this bug.
Fix bogus filtered packet calc for BPF format

This was essentially counting filtered packets twice,
first by deducting accepted from received, then adding on
the local filtered counter.

Since BPF doesn't do any in-kernel filtering, all we actually
need is libtrace's filtered counter.
Fix building with DPDK enabled

This broke with the some of the changes (to makefiles etc.) in libtrace develop branch.
Allows multiple instances of libtrace to use the DPDK format simultaneously
* Each must be bound to a separate port (And currently either reading or writing but not both)
* Each process tries to allocate 250Mb of huge pages and will fail if it cannot (this should be configurable in the future)
* It's up to the user to ensure they don't try bind to the same port twice
Print DPDK debug to stderr rather than stdout
Change thresholds to work with e1000 series cards
* Fix some typos
Fixes compling with DPDK 1.6.0r2 and 1.7
Fix compile warning
A terrible fix to allow nesting of getopts, because DPDK uses this internally.
This is probably going to break for someone, but it is the best solution I can think of for now.
In the future hopefully DPDK will have a programming interface for all these settings.
Update README to point to GitHub

Incremented version number to 3.0.21 in preparation for next release.