added an extremely simple hashing facility to np to assist with categorical lookups
use the hash tables to fill matrix_ordered_indices
pass matrix to kernel_weighted_sum_np in order to facilitate categorical lookups
now we can do ordered categorical differences!