BF: aInfo could be modified by actions, causing unexpected behaviour

A separate copy of aInfo is passed to each action
As the `CallingMap` has delayed calls, using the method of `dict(d)` or `CallingMap(d)` results in them being called and the resulting instance has the return values of the calls. Using `copy` this isn't the case, as it copies the internal dictionary without calling them.