configure guard sight range
fix EMSensor to measure from current location
make granularity a parameter for forward sensor
don't apply map noise to drop/target zones
flesh out guard detection and goal condition
give bond a brain

with all but only available information
extract observation
heading->turn in brain.decide and bond.advance

the brain can't direct a target heading to the body (which works on
actual heading, which the brain doesn't know about). instead, the brain
comes up with a turn based on its believed current heading and desired
new heading, and then the body will execute that turn against the actual
heading.
extract orientation (x, y, h) semantics
skeleton for using particle filter for calibration
noise-free NoisyMap constructor, explicit refresh
ForwardSensor reads from map, not environment
default constructor for Orientation
display belief vs. reality at each iteration
fill out particle filter implementation
fix emHeadingSigma in map; 0.2 was way too big
make bearing in EMSensor relative to heading

and cleanup a little so that bearing is always in [0, 2π)
tighter convergence parameters for particle filter
track guards with kalman filters: GuardModel

also performs naive (and brute force) correspondence of EM readings so
that a given reading updated the correct (hopefully) kalman filter