- The SCAN block no longer relies on invisible objects.  Instead, it

  checks your position against the anomalyPosition variable on the
  blackboard
- the writeToBlackboard action can now set a specific value.
- renamed the clearBlackboard action to clearBlackboardValue, so that
  you won't think that it clears the whole blackboard.
- updated the position of the "supplies" that the minirover drops,
  and the rover now appears to pick them up.
- added in the character text along the first leg of the rover tracks.
- lowered the volume of the engine/movement sound a bit, because it
  was drowning out the VO.
- lowered the volume of the level 2 music a bit, but the real solution
  will be to replace it.
- fixed the gratuitous error message in hudInstructions.js.
- finished expunging the old "object sensor."  We're using the "track
  sensor."
- Made it so that level 3c will only say "this one is a bit tricky" if
  you start out facing north (because otherwise it's not).

@AmbientOSX @BrettASwift 
In general, allocating/deallocating memory on the heap isn't very performance friendly.  It has all sorts of bad side effects - it fragments the heap, which makes future allocations take longer, and also means that things are more likely to be scattered around memory, increasing the chance of a cache miss (cache misses are very expensive - think on the order of 100 cycles).  In a GC'd language, it's also one thing that will need to be handled during the next GC, which can be bad when you're trying to maintain a consistent 60 FPS.

I'll switch to clearing it (i.e. setting to undefined).  That could still lead to a delete if what we were storing was an object, but presumably won't if it was just an integer (which is the usual case).