What happens if your transaction is never confirmed? If I have a low amount and don't include a fee, the transaction takes forever to get confirmed. What happens if it never gets confirmed? Can the wallet that I sent it to still spend the money?
If a transaction goes unconfirmed for too long, it will eventually disappear from the network. 

Most clients will remove it from their pool of unconfirmed transactions at some point. When most clients have removed it, you can go ahead and send the transaction again, this time with a higher fee. There's not a precise time when the transaction will disappear from the network, it could be days or up to a week. This is why it's always recommended to set a transaction fee.

The wallet that you sent it to cannot spend it because it's not confirmed. So you have to wait until it disappears from the network and send an entirely new transaction.