fix openssl bignum num_bytes issue

  OpenSSL::BN.new("\x00\x01".unpack("H*")[0]).num_bytes returned 1 but should be 2 for reliable combine/decrypt

  use num_bytes = secret.bytesize instead
fix base58 leading zero encoding

  ShamirSecretSharing::Base58.decode(ShamirSecretSharing::Base58.encode("\x00\x01")) returned "\x01" but should be "\x00\x01".

  track and add leading_zero_bytes like bitcoin implementation of base58 does.
increase data checksum length