Prevent empty transactions from being added to vtxPrev

CWalletTx::AddSupportingTransactions() was adding empty transaction
to vtxPrev in some cases. Skip over these.

Part one of the solution to #3190. This prevents invalid vtxPrev from
entering the wallet, but not current ones being transmitted.
Refuse to retransmit transactions without vins

Versions of bitcoin before 0.8.6 have a bug that inserted
empty transactions into the vtxPrev in the wallet, which will cause the node to be
banned when retransmitted, hence add a check for !tx.vin.empty()
before RelayTransaction.

These are backported from Bitcoin commits 8f167822909474f4d57e3ff22d014828ad228a5c
and f1e8edc9665b89a2f6d1caf2191c2babbec2a659  -Gnosis