Apply partial loop-unrolling to avoid trace aborts

The JIT compiler has to unroll inner loops in a trace.  It does this
up to a (configurable) limit and aborts the trace if it hits that
limit.

This commit tries to avoid excessive unroll operations by manually
unrolling a few iterations in critical code sections like multi-buffer
receive and transmit processing.  This significantly reduces trace
aborts in the case of, for example, encapsulation operations that
typically use two buffers per packet.  It should not have any negative
impact on single-buffer packets.

The commit also includes a few deliberate preventions of tailcalls to
avoid an effect discussed in the thread at
http://www.freelists.org/post/luajit/FFI-methods-for-userdata-objects,3
Merge pull request #238 from alexandergall/loop-unroll

Apply partial loop-unrolling to avoid trace aborts