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.

This is rather confusing. Does any existing software really work this way? You're sorting them textually, by the string representation of their hash? That's bizarre! They're numbers! They could just be compared directly. Anyway, this class should not have such a generic name as PubKeyComparator: probably this class is better made a private static inner class of ScriptBuilder as unless someone made this a broken standard somewhere, I find it hard to believe anyone would ever want this behaviour.