NetworkGeolocationProvider.js provides caching and wifi scan timeouts.
http://hg.mozilla.org/mozilla-central/file/ac39fba33c6d/dom/system/NetworkGeolocationProvider.js
In the event that a wifi scan is started, but never returns with anything, a timer event should force a PositionWatch error.
In the event that scans are run too quickly, we should just return a cached position fix.