Fix bad model hygiene in Positioner::move()
Don't change the proxy maps prior to insert/remove transactions so
rowCount() at transaction start time matches the count passed into
the method. The old code hits an ASSERT in Qt 5.11 otherwise.
Care is taken not to emit dataChanged() in the middle of another
Also cleaned up vestiges of caching lastRow(): This cache was
evicted all over the places but never actually filled anymore, so
maybe we don't need it.
Differential Revision: https://phabricator.kde.org/D14243