Heap

This is close to complete. We're still not passing test_pop_reorganizes is correct, but I'm not certain that the test is written correctly. Submitting the pull request in order to submit the code for review, but it will not be merged until the structure is fully working and tested. 
Does this need to be a while loop?