Exit cleanly if AppInit2 returns false

Bitcoin-Qt could core dump if application initialization failed in certain ways.

I double-fixed this:
1) qt/bitcoin.cpp now shuts down core threads cleanly if AppInit2 returns false
2) init.cpp now exits before StartNode() if strErrors is set (no reason to StartNode if we're just going to exit immediately anyway).

Tested by triggering all of the various ways AppInit2 can fail, either by passing bogus command-line arguments or just recompiling tweaked code to simulate failure.

This is a partial fix for #2480
Define dust transaction outputs, and make them non-standard
CreateTransaction: return strFailReason on failure
Un-hardcode TX_FEE constants

Allow setting of MIN_TX_FEE / MIN_RELAY_TX_FEE with
-mintxfee / -mintxrelayfee

Default values are the same (0.0001 BTC).
Merge pull request #2606 from gavinandresen/threadfix

Exit cleanly if AppInit2 returns false
Merge pull request #2577 from gavinandresen/fee_bandaid

Treat dust outputs as non-standard, un-hardcode TX_FEE constants
Make CPubKey statically allocated
CSecret/CKey -> CKey/CPubKey split/refactor
Make signature cache store CPubKeys
Inline signature serializer
Support for libsecp256k1