Show how long AcceptBlock() takes to process.
RPC: add 'getnetstats' op, to return data on messages and peers

The returned data is

1. Per-message arrays.

   Index 0 is total number of $ThisType messages
   received since program start (or uint64 counter wrap).

   Index 1 is total byte count since program start (or uint64
   counter wrap).

   They are returned as strings due to unfortunate JSON implementations
   in the field that do not handle unquoted uint64 numbers correctly.

2. Peer information.  Returns number of inbound, outbound and total peers.
   Total peer count is equivalent to RPC 'getconnectioncount'.
improve dust spamming prevention algorithm to add base fee for each output that's less than a CENT
Add per-node recv/send byte counters, accessible via getpeerinfo RPC
Collect per-message send/receive stats, with reporting via getpeerinfo RPC
Increase the size of adressbookpage.ui in order to fix issue #1062
No need to log start time if it's already being done on every line.
Show more significant bytes of block hashes.
Make test_bitcoin quiet again.
Add shared/upgrade lock support to CCriticalSection.
Upgrade CCriticalBlock to add Shared/Upgrade locks.
Add locking test cases.
Add a warning if we upgrade directly from shared->exclusive lock.
write used OpenSSL library version to debug.log
update Boost version to 1.49 for Windows in the Qt project file

- add -s flag as we also use a static build in makefile.mingw
IPC-server hardening and update

- add IMPLEMENT_RANDOMIZE_STACK for ipcThread()
- log / print boost interprocess exceptions
- add MAX_URI_LENGTH in guiconstants.h (will soon also be used in qrcodedialog.cpp)
- remove unneeded includes and ipcShutdown() from qtipcserver.cpp
- fix a small mem-leak by deleting mq before re-using it
- add some more comments
optionsdialog cleanup

- remove duplicate includes, that are already present in ui_optionsdialog.h
- change QIntValidator to not allow 0 as port-number
- re-order some function calls to match the Ui element order, for better readbility and to prepare for the addition of further IPv6 and Tor proxy options
- restat warning for the language selection is only shown, when the
  language was changed (not on simply activating the Ui element)
- modify proxy warning message "This setting..." into "Proxy settings..."
- split check for object == ui->proxyIp into seperate if-clause
- micro-optimize the code in the above mentioned if-clause
- unify used format for comments in the code
fix for build.h regeneration failure when compiling on Windows

- as the "||" operator is not known to qmake use "|" instead,
  which ensures the code in brackets does not get executed on Windows
- add a message to bitcoin-qt.pro when build.h is regenerated (shown
  during qmake)
Persistently poll for balance change when number of blocks changed

Fixes #1452. Until we can make the logic water-tight *and* are notified in every
case the balance might have changed, remove the premature optimization and
simply recompute the balance every half a second when the number of blocks changed.
Add 'coin control' tab to allow selection of source addresses to use when sending, and display logical links

Hidden by default, can be enabled through display options dialog