#1 hashing

fix hashCode function to handle Integer.MIN_VALUE
hashcode modulo is now moved inside the BiMap implementation. 
refactor to have cleaner separation between bimap and EfficientString
comment