tests.sh: use variable isinterpret instead of hard-coded checks

Signed-off-by: Jean Privat <jean@pryen.org>
tests.sh: introduce new engine nitvm

Signed-off-by: Jean Privat <jean@pryen.org>
markdown: privately import things and uptate clients

Signed-off-by: Jean Privat <jean@pryen.org>
doc: use `is_fictive` instead of relying on the module name

Signed-off-by: Jean Privat <jean@pryen.org>
model: promote `is_fictive` from doc_model

Signed-off-by: Jean Privat <jean@pryen.org>
modelbuilder: automatic mainmodule from run_global_phases is fictive

Signed-off-by: Jean Privat <jean@pryen.org>
nitdoc: replace NitdocContext by ToolContext

Signed-off-by: Jean Privat <jean@pryen.org>
nitdoc: use global phase (process_mainmodule)
Merge: Test nitvm

Add the engine `nitvm` in tests.sh so the developers of the vm can rely on the complex test framework.

1. compile nitvm (put it in src/ or bin/)
2. `$ cd tests`
3. `$ ./tests.sh --engine nitvm base*.nit` for some tests
4. `$ ./testfull.sh --engine nitvm` for all tests (long!)

Note: currently some tests (typing related) fails.
Note2: once the vm pass all tests, a new PR is needed so it is automatically built and tested.

Pull-Request: #586
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Merge: Phasify nitdoc

Launch nitdoc as a global phase (like metrics or nitg)

First commit is a cleanup that really detach doc/* from the modelbuilder.

Then some cleanup on `is_fictive`

Following commit remove the class NitdocContext and use ToolContext instead.

Last commit create add NitdocPhase that just instantiate and run Nitdoc.

Pull-Request: #587
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>