First pass at HashType class
Summary: Breaking T61 up into multiple diffs, with this being the first. I'm looking for early feedback on the design of HashType before utilizing it throughout the codebase.
Test Plan: I plan to write tests for the HashType class itself after a first-pass on reviewing this change. Existing tests should cover all usages of the class.
Reviewers: deadalnix, O1 Bitcoin ABC, #bitcoin_abc, schancel
Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc, schancel
Subscribers: schancel
Differential Revision: https://reviews.bitcoinabc.org/D807