Better handling of headGraph, separate head and base queues This involves a few things to make the validator less weird - _headGraph shouldn't be allowed to change while validation is happening.. - So we don't allow that to happen anymore, and keep track of _headPromise and _headIsCurrent - If head graph falls behind, kick off another validation to catch it up - Separate head and base work queues, so we aren't waiting for the base entities to validate   before providing feedback to the user about what they are editing   (the base queue can get quite large around metropolitan areas)
Better handling of headGraph, separate head and base queues
This involves a few things to make the validator less weird
- _headGraph shouldn't be allowed to change while validation is happening..
- So we don't allow that to happen anymore, and keep track of _headPromise and _headIsCurrent
- If head graph falls behind, kick off another validation to catch it up
- Separate head and base work queues, so we aren't waiting for the base entities to validate
  before providing feedback to the user about what they are editing
  (the base queue can get quite large around metropolitan areas)

openstreetmap/iD,openstreetmap/iD,openstreetmap/iD