Merge pull request #1025 from Diapolo/GUI-BlockDL

modified block DL progressbar to be more informative and precise
Merge pull request #1019 from laanwj/2012_03_uirefactor

Streamline UI ↔ Core interface
Do not invoke anti-DoS system for invalid BIP16 transactions

Doing so would allow an attack on old nodes, which would relay a
standard transaction spending a BIP16 output in an invalid way,
until reaching a new node, which will disconnect their peer.

Reported by makomk on IRC.
Fix testing setup

There were some problems with the existing testing setup:

 - Makefile rules for test-file compilation used CFLAGS instead of
   CXXFLAGS in makefile.unix
Fix script tests for P2SH

Upstream: 922e8e2929a2e78270868385aa46f96002fbcff3
Merge branch '0.4.x' into 0.5.0.x

Conflicts:
	src/main.cpp
	src/makefile.unix
Updated my GPG key
Updated my GPG key
Locking system overhaul, add condition variables

This commit simplifies the locking system: CCriticalSection becomes a
simple typedef for boost::interprocess::interprocess_recursive_mutex,
and CCriticalBlock and CTryCriticalBlock are replaced by a templated
CMutexLock, which wraps boost::interprocess::scoped_lock.

By making the lock type a template parameter, some critical sections
can now be changed to non-recursive locks, which support waiting via
condition variables. These are implemented in CWaitableCriticalSection
and WAITABLE_CRITICAL_BLOCK.

CWaitableCriticalSection is a wrapper for a different Boost mutex,
which supports waiting/notification via condition variables. This
should enable us to remove much of the used polling code. Important
is that this mutex is not recursive, so functions that perform the
locking must not call eachother.

Because boost::interprocess::scoped_lock does not support assigning
and copying, I had to revert to the older CRITICAL_BLOCK macros that
use a nested for loop instead of a simple if.
removed an ugly line break in a transaction tooltip for case TransactionStatus::Mature
Add Luke-Jr's PGP key to gitian-downloader
Add Luke-Jr's PGP key to gitian-downloader
Merge branch '0.5.0.x' into 0.5.x
Merge branch '0.5.x' into 0.6.0.x

Conflicts:
	bitcoin-qt.pro
	contrib/debian/changelog
	doc/README
	doc/README_windows.txt
	doc/translation_process.md
	share/setup.nsi
	src/bitcoinrpc.cpp
	src/db.cpp
	src/init.cpp
	src/irc.cpp
	src/main.cpp
	src/main.h
	src/makefile.osx
	src/makefile.unix
	src/net.cpp
	src/net.h
	src/qt/bitcoin.cpp
	src/qt/bitcoingui.cpp
	src/qt/bitcoinstrings.cpp
	src/qt/guiutil.cpp
	src/qt/guiutil.h
	src/qt/locale/bitcoin_da.ts
	src/qt/locale/bitcoin_de.ts
	src/qt/locale/bitcoin_en.ts
	src/qt/locale/bitcoin_es.ts
	src/qt/locale/bitcoin_es_CL.ts
	src/qt/locale/bitcoin_hu.ts
	src/qt/locale/bitcoin_it.ts
	src/qt/locale/bitcoin_nb.ts
	src/qt/locale/bitcoin_nl.ts
	src/qt/locale/bitcoin_pt_BR.ts
	src/qt/locale/bitcoin_ru.ts
	src/qt/locale/bitcoin_uk.ts
	src/qt/locale/bitcoin_zh_CN.ts
	src/qt/locale/bitcoin_zh_TW.ts
	src/qt/sendcoinsdialog.h
	src/qt/transactionrecord.cpp
	src/script.cpp
	src/script.h
	src/serialize.h
	src/util.cpp
	src/util.h
Condition variable for outbound connection slots

Keep a global counter for nOutbound, protected with its own waitable
critical section, and wait when all outbound slots are filled, rather
than polling.

This removes the (on average) 1 second delay between a lost connection
and a new connection attempt, and may speed up shutdowns.
Use a messagebox to display the error when -server is provided without providing a rpc password

(plus part of 7cfbe1fee465e82ddbdc8ed17dfcce791bd765f5)
Merge branch '0.4.x' into 0.5.0.x
Merge branch '0.5.0.x' into 0.5.x

Conflicts:
	src/qt/bitcoingui.h
Merge branch '0.5.x' into 0.6.0.x

Conflicts:
	src/bitcoinrpc.cpp
Add ifdef RELEASE to makefile.osx as the compile-for-older-macs flags