glacier module: add backward-compatible support for Python 3.3+

All tests passed.
Any reason to not use `codecs.decode(part_desc['SHA256TreeHash'], 'hex_codec')` here? What's the advantage of explicitly getting the decoder?