Lossless image optimization

less bytes, same images
Merge pull request #3341 from Need4Video/master

Lossless image optimization
[Qt] coin-control features GUI cleanup 2

- remove monospace labels from sendcoinsdialog also
- use a validated line edit for the change address
- add a tooltip to change address switch
- ensure we have a valid change address in
  CoinControlDialog::coinControl->destChange or just CNoDestination()
- some small ui file changes
[Qt] coin-control features GUI cleanup 3

- remove style sheets from ui files and use Qt attributes instead
- make some more strings untranslatable, to make life for translators
  easier
- split up long tooltips an rework the texts a little
Sanitize assert usage and refuse to compile with NDEBUG.

There were quite a few places where assert() was used with side effects,
 making operation with NDEBUG non-functional.  This commit fixes all the
 cases I know about, but also adds an  #error on NDEBUG because the code
 is untested without assertions and may still have vulnerabilities if
 used without assert.
Fix file hash verification error in deps-win32.yml

libpng was being sha256summed twice, and miniupnpc wasn't being checked at all.
Merge pull request #3344 from gmaxwell/assert_hazards

Sanitize assert usage and refuse to compile with NDEBUG.
Merge pull request #3345 from Michagogo/gitian-descriptor-deps-input-typo

Fix file hash verification error in deps-win32.yml
bitcoin-cli: remove unneeded dependencies (only code movement)

Remove unnecessary dependencies for bitcoin-cli
(leveldb, berkelydb, wallet, RPC server)

Build system changes:
- split libbitcoin.a into libbitcoin_common.a, libbitcoin_server.a and
  libbitcoin_cli.a

Code changes (movement only):
- split up HelpMessage into HelpMessage in init.cpp and HelpMessageCli
  in rpcclient.cpp
- move uiInterface from init.cpp to util.cpp
Merge pull request #3320 from laanwj/2013_11_cli_split

bitcoin-cli: remove unneeded dependencies (only minor code movement)
Merge pull request #3285

d3207b6 [Qt] coin-control features GUI cleanup 3 (Philip Kaufmann)
834e14e [Qt] coin-control features GUI cleanup 2 (Philip Kaufmann)
Payment request URI syntax changed, from request=... to r=...

BIP 72 was changed to save six bytes in bitcoin: URIs.
qt: use deleteLater to remove send entries

Use deleteLater() instead of delete, as it is not allowed
to delete widgets directly in an event handler.
Should solve the MacOSX random crashes on send with coincontrol.
Merge pull request #3355

6c98cca qt: use deleteLater to remove send entries (Wladimir J. van der Laan)
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.
Merge pull request #3357

4ef92a9 Refuse to retransmit transactions without vins (Wladimir J. van der Laan)
Merge pull request #3356

d3ef9b0 Prevent empty transactions from being added to vtxPrev (Wladimir J. van der Laan)
fix typo in rpcnet.cpp
Merge pull request #3359

38cbeab fix typo in rpcnet.cpp (Philip Kaufmann)