Implemented a binary heap class and associated tests.

I can't help but feel that calling a function recursively inside a loop is going to end up being more complexity than is needed to solve the problem.