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.

- Move --help handling before data directory check and config
  file parsing.

- Don't force 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.