I'm trying to buy something with bitcoin and the vendor does this through BitPay. According to their site, you need a supported wallet, as simply sending the exact amount of money to the provided address will not be enough.
This is incorrect. The payment protocol does exactly that, it sends the exact amount of Bitcoin to their address. There is no need to use the payment protocol, you can just send the exact amount of Bitcoin to their address. I have done this many times with sending from Armory to a merchant that uses BitPay.
Armory does not support the payment protocol yet. However you can just send the exact amount of Bitcoin directly to their address, as that is what the payment protocol tells your wallet to do. The only other thing it does is verifies that the address actually came from BitPay and not some malicious third party.
Is this true, and if so, does that mean I'll need to send all my bitcoins to a Bitcoin Core wallet first and pay with that every time?
Nope. Just send the exact amount to BitPay's address.