Is there a limit to the number of Bitcoin addresses? Is there a limit to the number of Bitcoin addresses?
And if so, what stops someone from making all these addresses and holding the private keys for them so no one else can make a new public key?
Is there a limit to the number of Bitcoin addresses? 


If I understand it correctly, there can never be more than 1461501637330902918203684832716283019655932542976 of the current type of addresses. 2160.


  what stops someone from making all these addresses and holding the private keys for them ...


Probably:

There aren't enough atoms in the universe to make a big enough computer.

There isn't enough time left in the universe before those atoms cease to exist.


  ..so no one else can make a new public key?


Other than the improbability of it occurring, there's nothing in the Bitcoin protocols or concensus rules that would prevent two or more people independently generating the same addresses. Any of those people could then spend any money sent to that address.

Which is to say, your bad-actor can't prevent anyone from generating an private-key a public-key or an address.