Add clear and reset functionality to Bloodhound

See #694, #653, #223, and parts of #562.

Still need to add some test cases.