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.
Merge pull request #2670 from laanwj/2013_05_datadir

qt: allow user to choose data directory
Improve handling of obscure reorganizations

This fixes some weird reorganization issues that probably don't normally
occur, but can be triggered when blacklisting arbitrary blocks is enabled.
Add blacklistblock RPC

As this is a fairly dangerous operation, it is normally disabled when
building. Define ENABLE_BLOCK_BLACKLISTING to enable compiling it in.