use the internal removeSpan function for removing spans, and also use the proper removeSpan function to delete them

I was having issues with the proper listener callbacks not being called when backspacing to remove a span / token. It seems when removing the library was prematurely deleting the span instead of going through the internal removeSpan function for removal and calling the listener callback. It also seemed to not use the correct way of removing the span within the removeSpan function so when moving over exceptions would be thrown.

I'm unsure if this is the best way for fixing it, however the way the library worked before seems incorrect if when removing a token, the remove token callback is not called.