:black_circle: :red_circle: Add red-black trees

- Separate BinarySearchable into its own interface
- BinarySearchTree and RedBlackTree implement BinarySearchable