Separate extension initialization into two steps: deserializeWalletExtension() and startWalletExtension().

* deserializeWalletExtension() is responsible for interpreting the extension's serialized form into objects.

* startWalletExtension() will perform initialization using the bitcoin network (i.e. the peer group)

Motivation:
Some wallets (MultiBitHD) do not use WalletAppKit, and begin with reading the wallet before initializing the bitcoin network.
This makes it very hard for the old payment channel impl, since deserializeWalletExtension() needed the peer group to run.
But with this change these wallets can call deserializeWalletExtension() when the wallet file is read, and call startWalletExtension() after the bitcoin network is up.