eliminated EncodingUtil, simplified Trap interfaces.

this commit also makes informative methods to `Encoding` such as `name`
lifetime-independent, in order to avoid a generic type parameter in trap
interfaces. (it seems that `&'static Trait` is impossible to construct
in the current Rust, as it would require a corresponding vtable to be
static as well.) since traps are not intended to create a new `Encoder`
or `Decoder` instance, non-informative methods continue to require
static lifetime so `Encoding` still has to be static.