Added an option to support deferred decoding of messages. messages now implement equals() and hashCode()