Refactor public key derivation

Deriving the public key from a private key was possible using two functions:
  pointMult in class_addressGenerator uses OpenSSL and 'raw' bytestrings
  privtopub in pyelliptic.arithmetic is pure python and uses hex strings

pointMult is fastest due to its use of OpenSSL.

privtopub uses a grossly inefficient method to convert to/from hex and in most cases the code that calls privtopub (or its highlevelcrypto wrapper privToPub) has to unneccessarily hexify the private key parameter and dehexify the public key result.

Obviously pointMult is the winner and it has been moved to highlevelcrypto while all calls to arithmetic.privtopub have been replaced to use highlevelcrypto.pointMult or highlevelcrypto.privToPub

This should result in a performance gain by avoiding needless hex conversions although there are still more pointless conversions