Adds Translator<A, B> class

Translator<A, B> acts as a bi-directional dictionary between two
DIFFERENT types, as opposed to BiMap<T>, which goes between two lists of
the SAME type.