Run runs a field-of-view computation up to radius distance from the given
origin, and calls the fov object's markSeenFn callback for all locations it
finds visible. The blocksSightFn callback of fov object is used to
determine locations that block visibility.