Clearer distinction between players, npcs, and characters, added utils.BestMatch
Added unit test for utils.BestMatch()
Made it so that utils.BestMatch() doesn't consider exact matches to be ambiguous

if one search item is a substring of another and the given search pattern is an
exact match of the shorter one.