Since Bitcoin is a decentralized system, each node makes its own decisions about if and when to drop unconfirmed transactions. So, the node run by the company that calls itself "blockchain.info" HAS dropped the transaction, but (from what you've described) it sounds like your recipient has chosen NOT to drop the transaction yet.
It is difficult to know which (if any) miners and mining pools have received your transaction or have chosen to drop your transaction from their memory pool. If there are any miners (or pools) that have not dropped the transaction, then it is possible that it could eventually confirm (perhaps in the next block, or in a few hours, or a few days, or a few weeks, or a few months, or a few years). If there are not any miners (or pools) that still have the transaction (and if nobody re-broadcasts the transaction), then it will never confirm at all.
Whether your own wallet has dropped the transaction yet will depend on what wallet software you are using. It sounds like maybe you are using Bitcoin Core? If so, then your wallet will not drop the transaction on its own. It will only drop it when you tell it to. Also, it will attempt to re-broadcast the transaction to the network occassionally. Do you know what version of Bitcoin Core you are using? If it is 0.12 or 0.13 then you don't need to use -zapwallettxes. It is now easier with abandontransaction.
That is an option, but depending on why it isn't confirmed yet, it might take MANY days. Perhaps even years. It would be easier to advise you if we knew why the transaction isn't confirmed yet. Would you be willing to post (or send a message) the raw transaction to be analyzed? If you are running Bitcoin Core, then you can get the raw transaction from the console with the "getrawtransaction txid" command (replacing txid with your actual transaction ID).
At the moment, my best guess is that you didn't pay a high enough transaction fee (or perhaps no fee at all). Therefore many nodes are refusing to relay the transaction, and miners are refusing to confirm it. By removing the transaction from your wallet, you could then re-send it with a better transaction fee, so that it would confirm quickly.
abandontransaction in version 0.12 was a very nice addition, but it required the user to be familiar with the console interface and they needed to know exactly what their transactionID was. Now with version 0.13 it has gotten even better.
Make sure you have securely stored a backup of your wallet. It always amazes me how many people don't create a backup and then lose their bitcoins. You should be able to find the "Backup Wallet" option under the "File" menu.
Don't share your private keys with anyone. Since your backup and your wallet.dat file contain your private keys, don't share them with anyone either. As long as nobody else has access to your private keys, they won't be able to take your bitcoins. That means that the bitcoins will ONLY be able to go where you choose to send them.
If you remove the transaction, it won't destroy or lose your bitcoins. Your bitcoins are yours because the blockchain (which has thousands of copies shared across thousands of computers all over the world) says so. The ONLY two ways for those bitcoins to be removed from your control are:
- A transaction confirms that gives control to someone else's private key
- You permanently lose access to your own private keys and are therefore no longer able to transfer control of the bitcoins
This means that either your current transaction confirms (and the bitcoins therefore end up where you want to send them), or you create a new transaction that confirms (and the bitcoins therefore end up where you want to send them). Nobody else has your private keys, so nobody else can create a valid transaction to be confirmed. Therefore, you don't need to be worried about "losing" your bitcoins to someone else. You only need to be worried about "losing" your private keys (which is why I told you to securely store a backup.