Hash builder redux

Based on all the work done by strathmeyer, I've rebased and refactored the original HashBuilder to match that style and incorporated the feedback changes from the previous PR. 
I think this is still a great way to reduce the complexity of the main BggApi class.