Allowed movement to work on other threads

Basically overloaded the beginMove and continueMove methods in order to provide a means for auxiliary threads to work separately without interfering with the mainThread present in MovableEntity