Make datadir handling more consistent

- Don't error out with an exception when it is impossible to create the default data directory, but return an empty datadir just like when otherwise passing an invalid datadir. Add a friendly error message for when this really becomes a problem.

- Move --help handling before data directory check and config file parsing.

- Don't check for existence of datadir in bitcoin-cli. It should be possible to run it without.

- Don't log in BitcoinApplication::~BitcoinApplication(), it's very possible that the data directory isn't set up. This avoids creating ~/.bitcoin on bitcoin-qt --help.

Fixes #3639