Add C API to the customized language

Implement the C functions:

  int language_init(lua_State *L);
  int language_report(lua_State *L, int status);
  int language_loadbuffer(lua_State *L, const char *buff, size_t sz, const char *name);
  int language_loadbuffer_use_ext(lua_State *L, const char *buff, size_t sz, const char *name);
  int language_loadfile(lua_State *L, const char *filename);
Move compiler's lua files in lang directory
Fix language's C API to load "lang.compile"

Load directly the generic lang.compile module and remove the function to
fix the package's path.
Add simple C based REPL that use language's C API

Based on LuaJIT2's REPL.
Remove unused static function from language C implementation
Add command line options for luajit-x

Code copied from LuaJIT by removing:
- NOENV option
- j options
- b options (bytecode generation)
- O option
Use luajit-x to test output in testing script
Fix a bug due to missing FFI flag in bytecode dump

From lj_bcread.c from luajit it seems that whenever a KCDATA is used in
a function prototype or any of its child an FFI flag should be activated
in the generated bytecode.

Previously the "flags" word was always zero. Now the FFI flags is activated
whenever a KCDATA is used.
Add simple tests for kcdata constants
Add support for bytecode generation flags in luajit-x

Use the same functions used by LuaJIT and calls the function bcsave.start
but when detecting a lua filename pass the compiled function instead of the
filename itself.
Use luajit-x executable in the bytecode test script
Remove unused function remaining from gsl shell

The function language_loadbuffer_use_ext was an extension used in gsl
shell to implement the "permanent use directives" in the REPL.
First incomplete implementation of bcread function

Implements in Lua a function to read a raw bytecode string and print
the bytes side by side with textual annotations.

The goal is to be able to easily inspect bytecode binary blobs byte by
byte with useful informations about the meaning of each byte.

The implementation is based on LuaJIT2 lj_bcread.c implementation file.

Currently only the bcread_header function is implemented.
Complete "bcread" function to annotate bytecode

Still not implemented bcread_ktab.

The bytecode instructions, upvalues and debug section are currently not
decoded.
Add specific bytecode informations about upvalues
Add informations about prototypes bytecode flags
Rename local functions in bcread

To uniformize with LuaJIT BC codeing.
Implement decoding of bytecode instructions

Based on "bcline" function from luajit's "jit.bc" module.

Current implementation does not reference the string, constants and
function operands, neither the upvalues and jump targets are not
highlited.

The current implementation is limited by the fact that the bytecode
section appears before the kgc and knum sections and it is therefore
impossible to resolve the constant references with a single pass.
Fix bug in bcread_uleb128
Improve generated bytecode for small unsigned integer constants