Relay OP_RETURN TxOut as standard transaction type

Also fix decoderawtransaction to not show reqSigs or addresses for
nulldata txouts. (Previous version also left reqSigs uninitialized
mistakenly)
Show short scriptPubKeys correctly

Previously bitcoin-qt's -debug transaction info was showing CTxOut([error])

It is valid for a scriptPubKey to be any size, for example simply
OP_RETURN is valid and can be used to destroy a TXOUT to mining fees.
Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION

INIT_PROTO_VERSION is the initial version, after a succesful version/verack it is increased to a negotiated version.
MIN_PEER_PROTO_VERSION could be a different value to disconnect from peers older than a specified version.
Give peer time-adjustment data an own lock

Instead of relying on cs_main (defined in a different module) to
prevent concurrent access to it.
Make util phexdigit array reusable

class template base_uint had its own private lookup table.
This is saving 256 bytes per instantiation.

The result is not spectacular as bitcoin-qt has only shrinked of
about 1Kb but it is still valid improvement.

Also, I have replaced a for loop with a memset() call.

Made CBigNum::SetHex() use the new HexDigit() function.

Signed-off-by: Olivier Langlois <olivier@olivierlanglois.net>
[Qt] Rework of payment request UI (mainly for insecure pr)

- this shows insecure (unsecured) payment requests in a new yellowish
  colored UI (based on the secure payment request UI) instead of our
  normal payment UI
- allows us to receive paymentACK messages for insecure payment requests
- allows us to handle expirations for insecure payment request
- changed walletmodel, so that all types of payment requests don't touch
  the addressbook
payment-request UI: use SendCoinsRecipient.message for memo
make processPaymentRequest() use a single SendCoinsRecipient

- as one this pulls main purpose is to change a payment request to
  be displayed as a single sendcoins entry
rework an ugly hack in processPaymentRequest()

- use a QStringList to store valid addresses and format them for GUI and
  debug.log usage via .join()
Do not use the redundant BestInvalidWork record in the block database.

As block index entries have a flag for marking invalid blocks, the
'best invalid work' information can be derived from there. In addition,
remove the global from main.h
Make some globals in main non-public.

This means they are declared static, and their extern definition in
main.h is removed. Also moved CBlockIndexWorkComparator to the .cpp
file.
Merge pull request #3114

a616206 Give peer time-adjustment data an own lock (Pieter Wuille)
Merge pull request #3128

0056095 Show short scriptPubKeys correctly (Peter Todd)
22de68d Relay OP_RETURN TxOut as standard transaction type (Peter Todd)

Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
Check integrity of gitian input source tarballs
Merge pull request #3087

caca6aa Make some globals in main non-public. (Pieter Wuille)
85eb2ce Do not use the redundant BestInvalidWork record in the block database. (Pieter Wuille)
.gitignore: Simplify references to the same file in different directories

Unless a .gitignore pattern is anchored, it'll match in any directory, not juts at the top level.  Simplify .gitignore accordingly.
make -logtimestamps default on and rework help-message
Merge pull request #3193 from joshtriplett/patch-1

.gitignore: Simplify references to the same file in different directories
Refactor: CTxMempool class to its own txmempool.{cpp,h}
Merge pull request #3154 from gavinandresen/mempool_refactor

Mempool refactor