Married HD wallets: introduce shadow keychain notion

As per [married wallets design notes](https://groups.google.com/forum/#!msg/bitcoinj/Uxl-z40OLuQ/e2m4mEWR6gMJ) a shadow key chain (the one that follows another keychain) was introduced to `KeyChainGroup`.
From client's perspective to make married wallet one has to call wallet's `addFollowingAccounts` supplying xpub form of extended public keys of other signing parties. After that `currentAddress`/`freshAddress` calls will start yield P2SH addresses made of corresponding regular and shadow key chains keys.

Shadow key chain is a `DeterministicKeyChain` and is being serialized along with the normal `DeterministicKeyChain`s with the only difference that it has a reference to "followed" keychain and has no seed.

Supporting links:

https://github.com/ms-brainwallet/ms-brainwallet.github.io/blob/master/js/brainwallet.js#L682
https://github.com/bitpay/bitcore/blob/master/lib/Script.js#L506

Looks like TrustedCoin is not sorting at all.

BTW, creating a BigInteger from getPubKey is definitely not right, since getPubKey starts with an encoding-type byte and for uncompressed pubkeys it contains two integers.