Invalid children

Fixes an issue discovered while thinking about #33 

It was possible for an invalid child key to be generated, though it was *extremely* unlikely. This implements the checks recommended in the [BIP32 spec](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#Child_key_derivation_CKD_functions).