Is there a Bitcoin wallet that supports all three and will allow me to send each coin to a different address?
You already have a wallet that supports Bitcoin: use that existing wallet to send your Bitcoins to a new address (unrelated to this wallet). Do this first, make sure your Bitcoins are all safe and confirmed before importing your private key anywhere else.
If it's small amounts of money, Coinomi (closed source on Android) is quite easy to sweep private keys for Bitcoin Cash and Bitcoin Gold. While you're at it, you can also claim Bitcore (it got airdropped to Bitcoin addresses) in the same wallet.
If it's large amounts, I wouldn't trust Coinomi (or any other Android software for that matter) with it, and secure the Bitcoin Cash by other means.