[Qt] ensure all class attributes are init to 0

- in BitcoinGUI and UnitDisplayStatusBarControl
[Qt] use BitcoinGUI::DEFAULT_WALLET constant in bitcoin.cpp
[Qt] disable tray interactions when client model set to 0

- this prevents the ability to fiddle around with the system tray when
  already shutting down (e.g. on slow shutdowns because of a proxy delay)
- extends solution for #4360
Add boolean HaveWatchonly and signal NotifyWatchonlyChanged
[Qt] Add column Watch-only to transactions list
Test IsPushOnly() with invalid push
Mark LevelDB "Read" and "Exists" functions as const.

Mark the "Read" and "Exists" functions in CLevelDBWrapper as "const".
They do not change anything in the DB, by definition.
Make appropriate getter-routines "const" in CCoinsView.

Mark the "Get"/"Have" routines in CCoinsView and subclasses as "const".
Use const CCoinsView's at some places.

At some places where it is possible (e. g., CheckInputs), use a const
version of CCoinsView instead of a non-const one.
Move CMedianFilter to timedata.cpp

Now that we no longer use the median filter to keep track of
the number of blocks of peers, that's the only place it is used.
Remove unused `alignup` function from util.h
Remove unused function `ByteReverse` from util.h
Move SetThreadPriority implementation to util.cpp instead of the header

Put the THREAD_* and PRIO_ constants in compat.h.
move functions in main and net to implementation files
Move functions in wallet.h to implementation file

Breaks compile-time dependency of wallet.h on util.
Move `S_I*` constants and `MSG_NOSIGNAL` to compat.h
Move `*Version()` functions to version.h/cpp
Move `COIN` and `CENT` to core.h

Eventually these should end up in `money.h` after monetary
amounts are typedef'ed, but at least they don't belong in `util.h`.
Split up util.cpp/h

Split up util.cpp/h into:

- string utilities (hex, base32, base64): no internal dependencies, no dependency on boost (apart from foreach)
- money utilities (parsesmoney, formatmoney)
- time utilities (gettime*, sleep, format date):
- and the rest (logging, argument parsing, config file parsing)

The latter is basically the environment and OS handling,
and is stripped of all utility functions, so we may want to
rename it to something else than util.cpp/h for clarity (Matt suggested
osinterface).

Breaks dependency of sha256.cpp on all the things pulled in by util.
Merge pull request #4561

d0867ac Use const CCoinsView's at some places. (Daniel Kraft)
a3dc587 Make appropriate getter-routines "const" in CCoinsView. (Daniel Kraft)
ffb4c21 Mark LevelDB "Read" and "Exists" functions as const. (Daniel Kraft)