implemented a lightweight memory model

In the model memory is as light as a pair of pointers into
a memory mapped file. This check-in also introduces tables,
a facility to map memory to arbitrary values, and to create
inter-table links.

Highlights:

1. Reimplemented elf parser (will close #7)
   It still uses bitstring and strings, but loads only headers and
   tables.

2. Factored out a memory from image.
   Now memory is very lightweight and represented just as two pointers
   into memory mapped file

3. Added Table module that allows to perform arbitrary memory mapping,
   like mapping memory to machine code, symbols etc.

4. Reimplemented Image module, so that it now uses new Memory and Table
   modules.

As a result, other than new abstractions we got a significant speedup,
readbin now parses executable 5-times faster.

Also, this commit extends plugin and CI systems

1. Plugin systems now supports all three targets:
   - Native code
   - Bytecode
   - Toploop (I was surprised to discover, that it has different loading
      facilities)

2. Plugins are automatically loaded, when `bap.top` library is loaded.
   This means that, Plugins.load shouldn't be called.

3. CI will now catch lost files

4. Will now test that baptop loads correctly and can execute all
   supplied examples. Also, we now have an examples subfolder.
Merge pull request #14 from ivg/lightweight-memory-model

implemented a lightweight memory model
housekeeping

- clean up dot files
- small edits to README.md
- some ocp-indent
Merge pull request #15 from maverickwoo/master

housekeeping
Always generate .cmt files

The latest oasis automagically adds this line to the generated _tags file, but older versions potentially do not
Merge pull request #16 from rvantonder/master

Always generate .cmt files
implemented a memory model based on memory maps.

Highlights:

1. Reimplemented elf parser (will close #7)
   It still uses bitstring and strings, but loads only headers and
   tables.

2. Factored out a memory from image.
   Now memory is very lightweight and represented just as two pointers
   into memory mapped file

3. Added Table module that allows to perform arbitrary memory mapping,
   like mapping memory to machine code, symbols etc.

4. Reimplemented Image module, so that it now uses new Memory and Table
   modules.

As a result, other than new abstractions we got a significant speedup,
readbin now parses executable 5-times faster.

This is a work-in-progress. I still need to add more tests.
Fixed discovered issues.

1. Plugin systems now supports all three targets:
   - Native code
   - Bytecode
   - Toploop (I was surprised to discover, that it has different loading
      facilities)

2. Plugins are automatically loaded, when `bap.top` library is loaded.
   This means that, Plugins.load shouldn't be called.

3. CI will now catch lost files

4. Will now test that baptop loads correctly and can execute all
   supplied examples. Also, we now have an examples subfolder.
Add byteweight
remove comment
Absort the word 'in' to the end of last line
Remove redundant comment
Change signature file readin function
Remove Str dependency
Rename module type in mode
Add mli files; remove redundant file
Abandon native table implementation. Use Bap_table instead.
Remove redundant code
Remove Gt module. The symbols of training binary are already in Symbol module.
Remove unused variable and some comment