Fix #22917 - Previous fix actually disable precise bar line editing

Fix #22917 - Previous fix actually disable high-precision bar line editing.

When editing is exited, an (extra?) final call to BarLine::endEditDrag() is made **after** the last drag: it was finding shiftDrag turned off by the last call and forced the bar line extrema to coarse precision.
See http://musescore.org/en/node/22917#comment-99269

Fixes:
- resetting shiftDrag moved from endEditDrag() to endEdit();
- added a test at the beginning of endEditDrag() skipping it, if there is no drag.

Also fixed:
- a test for shiftDrag swapped with !shiftDrag
- an assumption that staves always have 5 lines.