If one calls `fundrawtransaction`, the change address will be retrieved from the keypool, though, this key/address will always be returned to the pool, leading to the problem that the next `getnewaddress()` call will restult in the same key/address.

Either we remove the auto-change-address (users would need to call `getrawchangeaddress` first [current best practice anyway]) or we add a call to keep/mark a specific key/address as change (after one have sent the funded raw transaction).

Reported by @NicolasDorier on IRC.
void SetBroadcastTransactions(bool broadcast) { fBroadcastTransactions = broadcast; }
    
    bool AbandonTransaction(const uint256& hashTx);
    
    static std::string GetWalletHelpString(bool showDebug);
    
    static CWallet* CreateWalletFromFile(const std::string walletFile);
    static bool InitLoadWallet();
    /**
     * Wallet post-init setup
     * Gives the wallet a chance to register repetitive tasks and complete post-init tasks
     */
    void postInitProcess(boost::thread_group& threadGroup);
    
    static bool ParameterInteraction();
    bool BackupWallet(const std::string& strDest);
    
    bool SetHDChain(const CHDChain& chain, bool memonly);
    const CHDChain& GetHDChain() { return hdChain; }
    
    bool IsHDEnabled();
    
    CPubKey GenerateNewHDMasterKey();
    
    
    bool SetHDMasterKey(const CPubKey& key);
};
class CReserveKey : public CReserveScript