Changed data structures for B-tree nodes and introduced compare callback into init function so that we can compare arbitrary keys with a user-supplied function.
Added an explanatory comment for the callback function.