Add EmptyElement concept to HashBuilder

This should allow code dealing with sometimes-empty string-like elements to require less special casing.

Addresses #12 indirectly