We currently create a global object g_state_packer from the array
g_variable_domain. I suggest we change this, so a state packer can be created
from a task proxy. This could be either a method of task proxy or a global
function. I suggest we don't add a constructor IntPacker(TaskProxy) as we did
for other classes (like the AxiomEvaluator) because IntPacker could be used for
things other than the task.
We could also think about caching the created object like causal graphs.