[model] Store some functor to create new local symbol in ability_test
[compiler] Generate code to create new local symbol in ability_test
[model] Add some interface to add a local symbol in a test agent

This local symbol can be then used to pass a complex constraint,
referencing this local symbol.

While here, fix several issues:
	- generate code properly for symbol, considering their scope
	- pass the right ability context, i.e. the test agent, not the
	  target one
	- get the definition of ourself in the universe considered by
	  compiler.
[compiler] Simplify code by providing and using for_each_variables function

No functional changes expected
[compiler] Only register factory for significant types

In this context, it means types which appears in controlable variable of
the target.
[compiler] Use get_type_depends instead of open coding it

While here, fix its proto (remove the unused reference to local
universe)
No functional changes
[compiler] Always use the same code to find the ability path