Compile LuaJIT with LUAJIT_USE_PERFTOOLS and LUAJIT_USE_GDBJIT.

These are valuable debugging tools and they have no immediately
obvious performance impact.

Particularly useful is LUAJIT_USE_PERFTOOLS so that Linux 'perf top'
will show individual traces.
Only run as root.

Give a clear error message and exit otherwise.
src/core/lib: remove code that used undeclared functions
src/lib/hardware/vfio: function to check vfio availability
src/apps/vhost/vhost_user: check vfio before test execution
src/apps/intel/intel_app: get pci ids for test from environment variables
src/apps/vhost/vhost_user: get pci id and socket file for test from environment variables
src/core/memory: calculate size in bytes only if varialble is not null
src/Makefile: check exitcode of test
src/Makefile: ci test mode added, fails on error instead of returng 0
.travis.yml: version with make, make test and debug output
src/core/memory: use 'huge allocator' only if available
src/core/memory: use base page size as default value
src/apps/vhost/[vhost|vhost_apps]: run test only if /dev/net/tun exists
Merge pull request #147 from logiceditor-com/nm/4088/travis_tests_v5

Run tests in Travis CI. Update test code to skip cases where required hardware is not available.
Use the "zone" feature for LuaJIT profiling.

Snabb Switch now tells the profiler what "zone" of computation is
executing at any given time. The profiler is then able to report on
each zone separately, when given the -jp=z flag.

The zone name for an app can be given explicitly as the "zone" field
of the app (or its class). If no name is given then one is guessed
based on the module name of the app's code.

Example output:

    # ./snabbswitch -jp=2zF -t apps.intel.intel_app
    75%  apps.intel.intel_app
      -- 18%  intel10g.lua:transmit < intel_app.lua:push
      -- 17%  intel10g.lua:receive < intel_app.lua:pull
      -- 11%  buffer.lua:free < packet.lua:free
      --  7%  intel10g.lua:sync_transmit < intel_app.lua:push
      --  5%  intel10g.lua:can_add_receive_buffer < intel_app.lua:add_receive_buffers
      --  4%  register.lua:RDH < intel10g.lua:sync_receive
      --  3%  freelist.lua:add < buffer.lua:free
      --  3%  intel10g.lua:add_receive_buffer < intel_app.lua:add_receive_buffers
      --  3%  link.lua:receive < intel_app.lua:push
      --  3%  link.lua:transmit < intel_app.lua:pull
      --  3%  freelist.lua:remove < packet.lua:allocate
    11%  Sink
      -- 48%  buffer.lua:free < packet.lua:free
      -- 13%  freelist.lua:add < packet.lua:free
      -- 11%  link.lua:receive < basic_apps.lua:push
      --  9%  freelist.lua:add < buffer.lua:free
      --  7%  packet.lua:free < packet.lua:deref
      --  7%  packet.lua:deref < basic_apps.lua:push
    10%  Source
      -- 45%  packet.lua:add_iovec < basic_apps.lua:pull
      -- 15%  link.lua:transmit < basic_apps.lua:pull
      -- 15%  freelist.lua:remove < buffer.lua:allocate
      -- 11%  link.lua:full < link.lua:transmit
      --  8%  freelist.lua:remove < packet.lua:allocate
      --  6%  basic_apps.lua:pull < app.lua:breathe
     4%  selftest
      -- 27%  lib.lua:waitfor < register.lua:wait
      -- 27%  memory.lua:allocate_RAM < memory.lua:allocate_next_chunk
      -- 23%  app.lua:breathe < app.lua:main
      -- 14%  zone.lua:zone < app.lua:breathe
      --  5%  lib.lua:firstline < pci.lua:device_info
      --  5%  lib.lua:done < app.lua:main
README.md: Added Travis-CI build status link
Merge pull request #145 from lukego/rootcheck

Only run as root.
Merge pull request #140 from lukego/debug

Debug: Enable more LuaJIT features for debugging
Make API modules global.

Renamed 'app' to 'engine' in the global table.