lnwallet: introduce WalletController interface as a "base wallet"
lnwallet: introduce WalletController interface as a "base wallet"

The WalletController will serve as a layer of separation between “base”
Bitcoin wallet logic, and the higher level Lightning Network logic. As
a result LightningWallet will no behave as an overly wallet, relying on
the lower wallet for basic services such as new address, signing etc.

Within this higher level lies the awareness of channel types, chain
monitoring, HTLCs, and so on.

bryanvu/lnd,BitfuryLightning/lnd,ddustin/lnd,LightningNetwork/lnd,bryanvu/lnd,BitfuryLightning/lnd,LightningNetwork/lnd,aakselrod/lnd,AndrewSamokhvalov/lnd,AndrewSamokhvalov/lnd,aakselrod/lnd,ddustin/lnd