Optimize startup time for dijkstra

Initializing the cost matrix was taking up a majority of the team in
dijkstra() when trying to repeatedly find short paths.  As a fix,
dijkstra() now only initializes a subset of the costs in a rectangular
region surrounding the start and stop positions.  If the search ventures
to the boundary of this region, it initializes the remainder of the costs.
Fix memory leak in BotClient
Upgrade dijkstra to astar
A few tweaks to matlab scripts
Merge branch 'electric' into fuerte
Throttle warnings and stop if there's not a new goal