Fix IsInitialBlockDownload which was broken by headers first.
[Wallet] Reduce minTxFee for transaction creation to 1000 satoshis
bitcoin-tx: Add the "-txid" option. Also add the hex-encoded transaction to the JSON output as the "hex" property.
Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true.
Reset setBlockIndexCandidates once block index db loaded
Win32: log addresses found in Discover() calls
Win32: change buffer size for gethotsname in Discover()

- 256 byte is the maximum, as per
  http://msdn.microsoft.com/en-us/library/windows/desktop/ms738527%28v=vs.85%29.aspx
change nSubsidy's type from int64_t to CAmount
Make PruneBlockIndexCandidates safer
Split up crypto/sha2
Add HMAC-SHA256
Add the RFC6979 PRNG
Deterministic signing
Header define style cleanups
Process help and version arguments before datadir.
Check for strnlen and provide it if it is not found.
Improve chainstate/blockindex disk writing policy

There are 3 pieces of data that are maintained on disk. The actual block
and undo data, the block index (which can refer to positions on disk),
and the chainstate (which refers to the best block hash).

Earlier, there was no guarantee that blocks were written to disk before
block index entries referring to them were written. This commit introduces
dirty flags for block index data, and delays writing entries until the actual
block data is flushed.

With this stricter ordering in writes, it is now safe to not always flush
after every block, so there is no need for the IsInitialBlockDownload()
check there - instead we just write whenever enough time has passed or
the cache size grows too large. Also updating the wallet's best known block
is delayed until this is done, otherwise the wallet may end up referring to an
unknown block.

In addition, only do a write inside the block processing loop if necessary
(because of cache size exceeded). Otherwise, move the writing to a point
after processing is done, after relaying.
Introduce separate flushing modes
libbitcoinconsensus: don't require any global constructors

These static objects are only used in once place, so declare them there instead.
qt: osx: fix hidden symbol visibility

Fixes default hidden symbol visibility for our linux->osx cross build. Without
this change, the check for working -fvisibility=hidden fails, and all symbols
are visible by default.

Ugly as this is, it's just a simple find/replace to fix a bug in Qt's configure.
They assume in an "XPLATFORM_MAC" block that the builder is capable of running
osx programs. This should be "BUILD_ON_MAC" instead.