relax assumption that HD seeds are 128 bits

> Although seeds larger than 128 bits are likely pointless, the BIP 32 spec does allow for larger seeds and some wallets like GreenAddress.it use them. Our current code expects 128 bits always. We should fix this, ensure larger seeds are unit tested, and then write a unit test that verifies compatibility with GreenAddress.it wallets.

Most of the code looks to be generic in the number of bits.  I changed the constructor and DeterministicKeyChainTest.random() test to 384 bits, and it works fine.

re GreenAddress - they use p2sh, so I'm not sure how we would verify compatibility.
Should probably assert on bits here to make sure it's not absurdly low or high.