let user select wallet file with -wallet=foo.dat

This patch lets a user have multiple wallets within his data directory by selecting a wallet using `-wallet=filename`. It also allows accessing wallets outside the data directory. In that case, the database environment is still stored in the data directory so both wallet file and data directory must be kept in sync (e.g. when storing the wallet within an encrypted container).

I've been using this patch for a few months now without any troubles and it's proved to be pretty useful.