Model destroyed bug

#1040 adding a test and a fix for an issue where .splice is called to remove and re-add the same object (i.e. for .reverse), which was causing it to unbind incorrectly