Bug 874996 - Simplify handling of geolocation requests

Requests are now only put in the pending/watching requests
arrays after they have been allowed, and are removed after
being passed a single position (for getCurrentPosition) or
cleared (for watchPosition). getCurrentPosition requests that
are fulfilled by the cache aren't even added to the list.
Bug 874996 - Issue error events for geolocation provider errors
Bug 874996 - Expect more than one geoposition in test_allowWatch.html