added move functionality, needs thorough testing.
manual testing was performed several times, but its a complicated operation and requires nested levels of testing to ensure everything stays intact.
this also needs locking, which is not yet in place.

(cherry picked from commit 4894bae22750cd0db1be77922e3afcedcec24de1)
move function implemented in full nested set

(cherry picked from commit 21ed9763cdb73ff26c7eac1030ee1edda5d6a39a)
added locks to move() as it updates the entire table

(cherry picked from commit 4f8c3ecaad5789a5dead2b6749b83217bfaca891)
TODO list for optimizing move later

(cherry picked from commit 1367fdfe1e938b1c7aa27c4dab891b46e1c7915d)