Update swapCursor to return boolean like others
Move expand and collapse into ThingProvider
Fix for expanding and collapsing

...and a lot of extra refactoring that came with it.