Fix bugs arising in use of boundVOI
Fix bugs arising in use of boundVOI

Firstly, changing a 'less than or equal to' sign in line 87 to fix an
off-by-one error in the VOI bound. Secondly, allowing the user to set
fastUpdate. This is necessary because if fastUpdate is set to true (as
it is by default), toERPOverLatent is used in belief updating after the
VOI bound has passed. However, toERPOverLatent assumes deterministic
transition, setting the manifest state by taking a state from the ERP
over states and taking the manifest state of that. Therefore, if belief
recursion is used, and this procedure always returns a manifest state
with low utility, the agent will update its beliefs to assume that it
will be in a state of low utility. Since the next state is sampled from
the updated belief, the utility that the agent projects that it will
recieve will be systematically lower than it should be. This is not a
problem with state recursion of expected utility, since the next state
is just set as transition(previousState, action), so the agent having
incorrect beliefs about the manifest state will not affect the
evaluation of utility.

agentmodels/webppl-gridworld,agentmodels/webppl-gridworld,jsalvatier/webppl-agents,jsalvatier/webppl-agents,agentmodels/webppl-agents,agentmodels/webppl-gridworld,jsalvatier/webppl-agents