Python 3 version: encode before hmac.new(), decode after getresponse().

Py3 wants a 'bytes' or 'bytearray' for hmac.new(). Since __api_secret
is a string, and will most probably be specified by the user as a string,
do the encoding.

HTTPSConnection.getresponse() returns a .read()-able object, however,
json.load() uses json.loads() internally, which fails on an undecoded
response. For simplicity's sake, do this manually.