Power ultimately rests with users

The direction of Bitcoin will ultimately be decided by the preferences of users. In a conflict with any other group (miners, developers, exchanges, payment processors), users will always win. The other groups can only exercise short term influence until counteracted by users. This follows from basic principles of supply and demand, in combination with Bitcoin's incentive structure.

Miners vs. users
In this conflict, the demand of users determines the exchange rate on any fork of the blockchain. If there exists a fork whose coins have a high exchange rate, then it will attract mining effort roughly equal to the total block rewards + fees on that fork. If some set of existing miners refused to mine on that fork, then new miners would replace them because it's profitable for them to do so. Users can support any hard fork by demanding coins on that fork and thus causing mining effort to appear on that fork. Users collectively have enormous leverage over miners who have invested money in optimizing for the existing proof of work function, because users can always support a hard fork to a new PoW function and destroy any investment that miners made in the old PoW function.

Let's look at a few examples:

Centralization of mining pools
As of September 3rd 2015, three mining pools (F2Pool, AntPool, BitFury, BTCChina) have 64% of total hash power. This means that they have the power to start censoring transactions, or putting whatever conditions they like on their processing of transactions. For instance they might refuse to mine transactions that don't pay them a high enough fee, or for which the sender did not prove his identity to them outside of the Bitcoin protocol. These pools could band together to orphan blocks from any other pool and therefore take 100% of the block rewards for themselves. They could also join together to perform double spends. These pools do have power, but because users can collectively take this power away it is only short term power.

Note that mining pools are made up of many smaller entities which provide their hash power to the pool. These smaller entities may not agree with any censoring or other policy enacted by the pool owners, and may leave the mining pool once pool operators exercise power in a way that pool members don't agree with. Even if the smaller entities do support the policies of the larger mining pools, they can still be pressured to leave by users. Users could collectively decide to support a change to the PoW at some future date if pool operators engaging in bad behavior still control over a certain fraction of hash power at that time. Individual miners who don't want the value of their mining hardware to be destroyed may feel compelled to switch to more well behaved pools. If that did not happen, users could go ahead with their PoW-changing hard fork and reset the mining landscape.

Note that because mining pools are aware that they have little long term power, they are unlikely to engage in the behaviors described above. They may still find it in their interest to perform a large double spend at some point (although it's debatable whether it'd be in their economic interest since it'd likely reduce the price of bitcoins), but this is only short term power.

Large mining farms
This is similar to the mining pool case above, except that mining farms own their own hardware, so they don't have to worry about the individuals who lend them hash power not being on board with their activities and leaving for other pools. Like with mining pools, if large mining farms were interfering with transactions or otherwise behaving badly, users could collectively give them a deadline by which to stop, after which they'd reset the PoW function and cause great financial harm to the mining farms as well as strip them of their power. The knowledge that users have this power gives large mining farms an incentive to not engage in bad behavior.

Miners colluding to keep blocks small
As with the above cases, if miners started colluding to keep blocks smaller than what was good for Bitcoin, users could reset the PoW function and destroy the miners' investment.

Miners producing huge blocks leading to centralization
If at some point the block size limit was raised and it turned out that the new max block size was bad for decentralization, users could hard fork to a smaller block size. If users overwhelmingly saw the fork with smaller blocks as the legitimate one, then any miners who continued mining huge blocks would find themselves mining worthless coins, and any miners who switched to the small block forks would be rewarded with valuable coins. Because users control demand for coins, miners are incentivized to mine on the fork that users want.

Developers vs. users
Users choose which software to run, and which blockchain's coins they want. If some developers released full node software A and other developers released full node software B, and the software difference lead to a chain fork, users could select their preferred chain by choosing to run software A or B (or choosing to trust people who ran software A vs. B). No developers or group of developers could make people use software that they didn't want to.

This doesn't mean that there isn't some sense of inertia where if a user has been running software A for years he'll be more likely to apply updates to software A instead of switching to software B made by different developers. However blockchain forks have large consequences. When such a fork is involved, the user is likely to care enough about which fork he ends up on to override this inertia.

Exchanges vs. users
Exchanges are businesses who survive by attracting customers who want to use their services. If users supported one fork of the block chain but exchanges supported another fork, the exchanges would find themselves offering a service that no one wanted: exchanging other currencies for worthless coins. This would incentivize new exchanges to be created which offered the service of exchanging the coins that users actually wanted. These new exchanges would quickly take over from the old exchanges. In reality it wouldn't play out like this, because existing exchanges are not stupid. They would clearly see which coins users wanted, and they would provide this service in order to avoid going out of business.

Payment processors vs. users
Like exchanges, payment processors are in the business of satisfying their customers. Merchants are generally happy to take any form of currency their customers want to use if they can easily and cheaply convert it into a currency they want. If payment processors refused to accept coins on a blockchain fork preferred by users, they would end up processing fewer payments and their market share would be taken by a payment processor which accepted the coins that users actually owned and wanted to spend.