Add a binary heap structure and clean the tests

The binary heap will replace the red black matrix. Since the number of
recommended items is known in advance.
Add some comments