Refactor agents to use generic get/set

set("prop", val) will set a property on an agent.

get("prop") will return either the value for that
property (if one exists) or the value for that property
on the environment cell the agent is in.

This way we can write code such as

if agent.get("leaves") > 2 and agent.get("sunlight") > 1
then agent.set("health", 10)