FFI-based interface for mupdf

This replaces the old Lua/C API for mupdf. It is a drop-in replacement
for the old API, i.e. the calls are the same for now.

add mupdfbmp API to mupdf FFI interface
test suite for the mupdf API

this ought to work for both the new FFI based interface and the old
Lua/C API based one.
use mupdf FFI API instead of mupdfbmp API
remove old Lua/C based mupdf API
remove old mupdfimg wrapper

functionality is now included in the mupdf FFI API

Note that this will need slight modifications where the old interface
was used.
koptcontext: return 8bpp/24bpp blitbuffers

Will not downgrade bmp buffers to 4bpp blitbuffers, but rather return
8bit/24bit blitbuffers, depending on input data.
fix clang compiling error
This patch fixes Travis error:
```
clang -Imupdf/include -Lbuild/x86_64-unknown-linux-gnu/libs -O2
-ffast-math -pipe -fomit-frame-pointer -D__extern_always_inline=inline
-Qunused-arguments -march=native -fPIC -Iluajit-2.0/src -shared -Wl,-E
-Wl,-rpath,'$ORIGIN' \
                -o build/x86_64-unknown-linux-gnu/libs/libwrap-mupdf.so
                wrap-mupdf.c wrap-mupdf.h
                build/x86_64-unknown-linux-gnu/libs/libmupdf.so
                build/x86_64-unknown-linux-gnu/libs/libk2pdfopt.so.2
clang: error: cannot specify -o when generating multiple output files
make: *** [build/x86_64-unknown-linux-gnu/libs/libwrap-mupdf.so] Error 1
```