Prune provably-unspendable outputs
[raw] reject insanely high fees by default in sendrawtransaction

There have been several incidents where mainnet experimentation with
 raw transactions  resulted in insane fees.  This is hard to prevent
 in the raw transaction api because the inputs may not be known.
 Since sending doesn't work if the inputs aren't known, we can catch
 it there.

This rejects fees > than 10000 * nMinRelayTxFee or 1 BTC with the
 defaults and can be overridden with a bool at the rpc.
Move Parse{Hash|Hex} to be usable by all RPC code
Add RPC call decodescript
Make validateaddress provide redeemScript
Merge pull request #2830 from petertodd/p2sh-rpc

P2SH related RPC improvements
autotools: rearrange qt sources to make them more flexible

Add BITCOIN_MM QR_CPP and BITCOIN_CPP in order to better accomodate complicated
targets. This is a no-op change.
autotools: teach extract_strings_qt.py to respect the XGETTEXT env variable
Bitcoin-Qt: BitcoinGUI::message() updates/fixes

- ensure message boxes are shown in center of our main window, not
  centered on the users desktop
- always prefer user supplied titles for message boxes over the functions
  defaults (fixes a bug, where transaction info messages did not contain
  information, if it was incoming or outgoing)
autotools: add translate target for qt translations
autotools: check for lupdate/xgettext
autotools: update translation docs
Merge pull request #2996 from theuni/qt-translation

Update translation process for autotools
More fixes for blockchain corruption on OSX.

As we'd previously learned, OSX's fsync is a data eating lie.

Since 0.8.4 we're still getting some reports of disk corruption on
 OSX but now all of it looks like the block files have gotten out of
 sync with the database. It turns out that we were still using fsync()
 on the block files, so this isn't surprising.
autotools: fix a parallel build race condition spotted by the pull-tester

libleveldb.a and libmemenv.a should be able to build in parallel, but in
practice calling the leveldb makefile ends up rewriting build_config.mk. If
one target tries to build while the other is halfway through writing the
.mk, the make ends up in an undefined state.

Fix that by making one depend on the other. This also reorders the variables
to be passed by param rather than via the environment, and combines the targets
into a single rule to avoid needless duplication.
Merge pull request #3001 from theuni/fix-make-race

autotools: fix a parallel build race condition spotted by the pull-tester
Merge pull request #3000 from gmaxwell/more_osx_fsync

More fixes for blockchain corruption on OSX.
included-tests: update gitian descriptors for hexdump dependency
included-tests: generate binary data from test files for inclusion into test binaries

This change moves test data into the binaries rather than reading them from
the disk at runtime.

Advantages:
- Tests become distributable
- Cross-compile friendly. Build on one machine and execute in an arbitrary
  location on another.
- Easier testing for backports. Users can verify that tests pass without having
  to track down corresponding test data.
- More trustworthy test results and easier quality assurance as tests make
  fewer assumptions about their environment.
- Tests could theoretically run at client/daemon startup and exit on failure.

Disadvantages:
- Required 'hexdump' build-dependency. This is a standard bsd tool that should
  be usable everywhere. It is likely already installed on all build-machines.
- Tests can no longer be fudged after build by altering test-data.
Merge pull request #2985 from theuni/included-tests

Embedded test data in bitcoin_test