nitg: extract toolchain methods into a new ToolChain class

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
nitg: refactor the ToolChain class by adding an abstract super class

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
nitg: intro the platform concept

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
android: adds support for the android platform

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
tests: minimal test for compilation to android

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
tests: skip android related test in niti

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
modelbuilder: avoid infinitive recursion in case of module importation loops

Signed-off-by: Jean Privat <jean@pryen.org>
modelbuilder: display error in case of dependency loop

Signed-off-by: Jean Privat <jean@pryen.org>
tests: error_req_loop*

Signed-off-by: Jean Privat <jean@pryen.org>
Merge branch 'error_req_loop'
Merge remote-tracking branch 'alexis/android-platform'

Add support to compile for Android with nitg. When the "android" module
is imported, nitg will generate an APK instead of a binary,

The option --no-stacktrace must be used for Android. This is why we
expect the test to fail.

The generate applications are not usable (as of yet) since they are only
console

To do next:

* Solve the --no-stacktrace problem.
* Implement mnit for Android