qt: allow user to choose data directory

This adds an introduction screen that is shown when the client is first
started in which the user can choose a data directory.

It is also possible to force the intro screen to appear using command
line argument `-choosedatadir`.

The user is warned that the client will download and store 10Gb of data.
The intro screen shows how much space is available on the device that
contains the chosen directory and warns if this is less than the 10Gb.

To make it possible to translate the introduction dialog, the initialization
sequence is changed so that translations are
loaded before the data directory. This has the by-effect that it is
no longer possible to specify a language in bitcoin.conf inside the data
directory.
Log aborted block database rebuilds
let user select wallet file with -wallet=foo.dat

use std::string instead of psz for WalletFile

only allow wallets within $DATADIR

Use strWalletFile in salvage/recover

fix: remove unused variable pszWalletFile

move strWalletFile to init.h/init.cpp

avoid conversion of strWalletfile to c-string
fix invalid conversion error with MinGW 4.8.1 in net.cpp

- fixes src\net.cpp:1601: Error:invalid conversion from 'void*' to
  'const char*' [-fpermissive] in a setsockopt() call on Win32 that was
  found by using MinGW 4.8.1 compiler suite
Bugfix: Move boost/version include from db.cpp to walletdb.cpp where BOOST_VERSION is used
Merge pull request #2670 from laanwj/2013_05_datadir

qt: allow user to choose data directory
makefile.mingw: Use normal boost libraries instead of debug for Windows

https://github.com/bitcoin/bitcoin/pull/2835#issuecomment-21231694
Bugfix: Include block creation and SSL options headings in usage
Merge pull request #2842 from luke-jr/bugfix_usage

Bugfix: Include block creation and SSL options headings in usage
Merge pull request #2836 from phelixbtc/patch-3

makefile.mingw: Use normal boost libraries instead of debug for Windows
Merge pull request #2826 from Diapolo/fix_mingw481

fix invalid conversion error with MinGW 4.8.1 in net.cpp
Merge pull request #2832 from luke-jr/bugfix_wdb_boostver

Bugfix: Move boost/version include from db.cpp to walletdb.cpp where BOOST_VERSION is used
Merge pull request #2795 from fanquake/log_aborted_rebuilds

Log aborted block database rebuilds
Merge pull request #1889 from tcatm/multi-wallet

let user select wallet file with -wallet=foo.dat