[network] Integrate error context in various constraint msg
[network] Remove the constraint_ack message as it is not used anymore
[network] Provide a more expressive type to represent runtime error
[model] Rework recipe and task to use network::runtime_failure

Move the previous error_context to constraint_error_context in task,
which contains only logic::expression from constraint_failure.

The new error_context contains a more complete error context.
[model] Make error_context go back until the caller

Add some global error_context in logic_ctx, and fill it with the content
of task error_context.
Pass the error_context in the final callback and the update_status
Fill properly the err_ctx field of constraint_answer_msg
[model] Cosmetic changes in tasks

- Use network::error_context instead of its explicit definition
- rename error_context in err_ctx to match other code place
- make them private as they must be only modified by task.cc
[model] Add some possible cause to runtime_failure and fill it

It will provide to the operator a more clear understanding of what
fails.
[network] Add a pretty print method to runtime_failure
[network] Rename sucess to unknown_error for the default case of runtime_failure
[model] Pass a function to return kind of error in abortable_function
[logic] Allow logic_function ctor until 20 parameters

It is needed for large expression founded in some agent.
[network] Add an extra information field in execution_failure struct

It will be used to pass more information to the caller (but it is not
expected to be used in an automatic way for the moment)
[model] Put more details about where occurs runtime error

It includes now, not only recipe name, but also task name and agent
name.
Add an header file which will contain the version of hyper
[hyperc] Add a flag --version to the compiler