Major refactoring, API change

- Rewrote `DataStore.sort()` to be case insensitive and utilize a decision tree with native `Array.sort()`
- Fixes #420