update SelectParamsFromCommandLine() handling/order

- move SelectParamsFromCommandLine() from init.cpp to bitcoin.cpp to allow
  to use TestNet() for Bitcoin-Qt instead of GetBoolArg("-testnet", false)
- change order in bitcoind.cpp to match bitcoin.cpp functionality
- hamonize error message strings for missing datadir and failing
  SelectParamsFromCommandLine() in bitcoin.cpp and bitcoind.cpp
- use TestNet() call in splashscreen.cpp
Rework when payment server is started
Route qDebug() messages to debug.log
Merge pull request #2922 from Diapolo/translations

translations update for 0.8.4
Payment Protocol: X509-validated payment requests

Add support for a Payment Protocol to Bitcoin-Qt.

Payment messages are protocol-buffer encoded and communicated over
http(s), so this adds a dependency on the Google protocol buffer
library, and requires Qt with OpenSSL support.
Merge pull request #2539 from gavinandresen/paymentrequest

Payment Protocol Work
Bitcoin-Qt: tweak Qt walletXXX.cpp/h code

WalletView:
- add new signal showNormalIfMinimized()
- emit the new signal in handleURI() to fix a bug, preventing the main
  window to show up when using bitcoin: URIs

WalletStack:
- connect the showNormalIfMinimized() signal from WalletView with the
  showNormalIfMinimized() slot in BitcoinGUI
- rework setCurrentWallet() to return a bool
- add check for valid walletModel in addWallet()
- add missing gui attribute initialisation in constructor

WalletFrame:
- remove unused or unneded class attributes gui and clientModel
- add a check for valid clientModel in setClientModel()

General:
- small code formatting changes
Merge pull request #2872 from Diapolo/GUI_wallet

Bitcoin-Qt: tweak Qt walletXXX.cpp/h code
Bitcoin-Qt: extend some checks for valid model pointers
[QT] Don't ask for a passphrase to getnewaddress.

With an encrypted wallet the GUI was prompting for a passphrase every time
 the user requested a new address.  This is unnecessary, increases the
 exposure to keyboard sniffers, and discourages using fresh addresses for
 every transaction.

Instead only prompt for a passphrase when the keypool runs out, also call
 the new address function with the flag that prevents reuse.

Thanks to AlexNagy on IRC for pointing this out and who wouldn't take any
 lip from a curmudgeonly developer and insisted on what he knew to be true.
Remove fAllowReuse from GetKeyFromPool.

With the GUI password fix this was always false.
CreateNewBlock() now takes scriptPubKey argument,
rather than a key.

CreateNewBlockWithKey() helper is added to restore existing functionality,
making this an equivalent-transformation change.
RPC: getblocktemplate does not require a key, to create a block template

getblocktemplate only uses certain portions of the coinbase transaction,
notably ignoring the coinbase TX output entirely.

Use CreateNewBlock() rather than CreateNewBlockWithKey(), eliminating
the needless key passing.

Should be zero behavior changes.
Merge pull request #2926 from Diapolo/model_checks

Bitcoin-Qt: extend some checks for valid model pointers
Bitcoin-Qt: add testnet check and icon to intro dialog
Merge src/leveldb changes for LevelDB 1.13
Squashed 'src/leveldb/' changes from be1b0ff..936b461

936b461 Merge upstream LevelDB 1.13.
748539c LevelDB 1.13

git-subtree-dir: src/leveldb
git-subtree-split: 936b4613ea4551992e6096b1e05eeefc09a20e3b
Fix out-of-bounds check
Merge pull request #2852 from petertodd/getblock-chainwork

Add 'chainwork' to getblock
Merge pull request #2618 from fcicq/solaris-support

Partial solaris support