AddToWallet implies BindWallet

Now that AddToWallet is called when loading transactions from the
wallet database, BindWallet can be integrated into that and does not
need to be an extra step.

Leaves behaviour unchanged, but makes the
fFromLoadWallet/!fFromLoadWallet paths in AddToWallet a bit more
symmetric.
Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input. Getpass is in Python stdlib so no additional dependencies required.
Prevent socket leak in ThreadSocketHandler.

When we are over our outbound limit ThreadSocketHandler would try to
 keep the connection if the peer was addnoded.

This didn't actually work for two reasons: It didn't actually run
 the accept code due to mistaken code flow, and because we have a
 limited number of outbound semaphores it couldn't actually use the
 connection.

Instead it leaked the socket, which might have caused issue #4034.

This patch just takes out the non-functioning white-listing for now.
Correct some proxy related socket leaks.
build: add glibc/libstdc++ back-compat stubs

glibc/libstdc++ have added new symbols in later releases. When running a new
binary against an older glibc, the run-time linker is unable to resolve the
new symbols and the binary refuses to run.

This can be fixed by adding our own versions of those functions, so that the
build-time linker does not emit undefined symbols for them.

This enables our binary releases to work on older Linux distros, while not
incurring the downsides of a fully static binary.
build: add an option for enabling glibc back-compat

Using "./configure --enable-glibc-back-compat" will attempt to be
compatible with a target running glibc abi 2.9 and libstdc++ abi 3.4.
gitian-linux: --enable-glibc-back-compat
build: add symbol for upcoming gcc 4.9's libstdc++
Improve and expand base58 comments

update comments so doxygen will pick them up
/contrib index reorg

Cleaner and easier to read.

Reordered by functionality
Add AssertLockHeld for cs_main to ChainActive-using functions

All functions that use ChainActive but do not aquire the cs_main
lock themselves, need to be called with the cs_main lock held.

This commit adds assertions to all externally callable functions
that use chainActive or chainMostWork.

This will flag usages when built with -DDEBUG_LOCKORDER.
Solve chainActive-related locking issues

- In wallet and GUI code LOCK cs_main as well as cs_wallet when
  necessary
- In main.cpp SendMessages move the TRY_LOCK(cs_main) up, to encompass the call
  to IsInitialBlockDownload.
- Make ActivateBestChain, AddToBlockIndex, IsInitialBlockDownload,
  InitBlockIndex acquire the cs_main lock

Fixes #3997
Merge pull request #4037 from gmaxwell/fdleaks

Prevent socket leak in ThreadSocketHandler.
Merge pull request #3701

09ec3af AddToWallet implies BindWallet (Wladimir J. van der Laan)
Merge pull request #4014

4e9667b Improve and expand base58 comments (rxl)
Merge pull request #4047

494cbf8 /contrib index reorg (super3)
Replace DecodeBase58/EncodeBase58 with direct implementation.

This removes the bignum/OpenSSL dependency.

The base58 transformation code is also moved to a separate .cpp file.
Merge pull request #4048 from sipa/nobigb58

Remove dependency of base58 on OpenSSL
Merge pull request #4058

55a1db4 Solve chainActive-related locking issues (Wladimir J. van der Laan)
e07c943 Add AssertLockHeld for cs_main to ChainActive-using functions (Wladimir J. van der Laan)
Merge pull request #4035

0f63504 Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input. Getpass is in Python stdlib so no additional dependencies required. (Eric S. Bullington)