Static fields are definitely bad: they would break in multi-tenancy cases.

`ArrayTable<MrMachine, MrMachine, Integer> machineMoveCostTable` in the Solution would be saved to xml, but then we need to be able to put the Solution in it's own getProblemFacts(), which is a bad idea.

We could add a singleton in the Solution, called MachineCostParametrization (similar to ExaminationParametrization etc) and put that in the working memory and use it from there.

The problem with all this, is that if we now have a Machine A and process of it being reassigned to machine B, we're now doing 2 hash lookups: A and B, instead of just B. I believe this will have a performance impact (= lower score calc average).

All in all, I am still biased towards the original implementation due to the concerns mentioned above... Maybe we should handle the ArrayTable experiment in a separate PR?