Ok, I've had a chance to look at your branch that splits classes into separate files. Looks fine. You basically did the obvious thing.
One suggestion I have is to squash the 3 main commits into 1 commit. The 2 minor commits look like bug fixes for the larger commit, and hence the larger commit seems to be broken. By squashing, you reduce the noise, and ensure all commits (the 1 remaining commit in this case) works.
You can look up "interactive rebase" in the Git documentation to figure out how to squash commits. This falls into the realm of rewriting history. Whenever possible, it's good to do this before pushing to the central repo.
Side note: This is also why pushing after every commit is considered an anti-pattern in Git, since you inevitably catch these mistakes sometime after making the commit. By delaying the push, you give yourself a chance to find and fix these errors before publishing the results.
At any rate, things are already pushed to a branch in the public repo. There are two choices at this point. You can squash, and then do a force push (very Darth Vader like), to update the branch on the central repo. This can be a nuisance for other people that have downloaded that branch. Don't worry, I'm sure I can deal with it. Plus the branch gets deleted after merging into master, so meh. The other option, is to do the squash, and merge into master locally, and push the changes on master. The branch can then be deleted without ever having been updated in the central repo, no force push required (sorry my young apprentice).
I noticed you added the sort update to this branch. Is that the part that was making you itch?
The sort commit isn't really related. It would be better on a different branch. Though I do understand the temptation, as keeping work linear is easier, and you often have changes that depend on other pending changes. In this case, you could have created another branch off of master. If the changes were more dependent on the branch changes, you can create a branch off another branch.
At any rate, if all changes are merged into master using a fast-forward merge, you won't be able to tell where the branches were merged in, or how many, so it won't really matter. That's the case I expect here. If the merge requires a merge commit (a commit with more than 1 parent), then it's a little more obvious, and may stand out as strange to have both changes come from the same branch.
For code review, using a GitHub pull request may be a good option. It's fine to open a pull request from different branches in the same repository. That's a fairly standard way to start a code review. People can then review the changes right from the browser, with color coded diffs, and comments. They also have handy buttons for performing the merge should the code pass review, and to delete the branch after the merge is done.
If you want to give it a try, you can do so now, or after attempting the squash. Totally optional though.