[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.