There are so many combinations and possibilities that it's hard to say which one is the best.
And all them can be gamed.
You can have more than two candidates without more powerful parties.
Proportional representation leads to parties, something like range voting can keep the primacy of candidates, but lets us escape from the two party system.
Proportional representation in the House of Representatives is possible without increasing party power (or even without parties at all) by using Single Transferable Vote.
Instant Runoff Voting (the single-winner variant of Single Transferable Vote) for presidential (and gubernatorial) elections would help to protect against excessive party power by allowing third party and non-party candidates a fair chance.
Instant Runoff Voting is really only suitable for single winner elections like presidential, gubernatorial and mayoral elections, and not for the multi-winner legislative elections it is used for in Australia.
There are better forms of STV than that used for the Australian Senate, but I'd take any form of STV over FPTP.
Approval Voting or Range Voting are much simpler to explain and to execute, and they have much better properties. (And, yes, I can well believe that the Australian system can be improved up on, and doesn't present the best version of STV. There's lots wrong with Australia, so this aspect probably too. Eg, their STV system requires a valid ballot to rank all parties, making sure that every vote cast will eventually be counted for one of the major parties. The guy who came up with a hack to avoid having to choose a major party got jailed for promoting it. See https://en.wikipedia.org/wiki/Langer_vote)
Range Voting is literally the same procedure people know from figure skating competitions in the olympics: the judges (=voters) give the candidates numbers, candidate with the highest average wins.
Approval voting can be explained as: just like FPTP, but ticking multiple candidates (eg everybody but Trump or Hillary) doesn't void your ballot. (Or you can see it as a special case of Range Voting, that only allows the numbers 0 and 1. Approval voting was my favourite system to elect a single winner, until I learned about Range Voting.)
The range voting guys wrote about STV, too, see http://www.rangevoting.org/rangeVirv.html
I'd be happy to see STV, RRV or both used more widely.
I'll look into it, thanks.
My note was about single-winner systems.