Implemented Mana.equals(), Mana.hashCode()

If the representations are the same, then the Mana objects are considered
equivalent; this means we can just rely on the String representations'
hashcodes for comparisons.
Made Mana.repr immutable

It doesn't make sense to later change a Mana object's amount.