Each of these functions returns a list of matches from different places.
These all get put together into one big list, which then gets `sorted`.

So in the current implementation, using `sorted`, the order here is irrelevant.
This will all change with the IPEP 11 completion refactoring, which exactly requires that the information about
which kind of completion it is (i.e. where it came from -- files, or magics, or globals, etc.) is included in this list and may be used
in the sorting and rendering of the completion lists.

I reordered them when I was using the `uniquify` function to make sure that the magics came last, but I then
reverted to using `sorted` with the custom key.

I have put this list back the way it was, and deleted `uniquify`.