improving the EncodeFrom/EncodeTo API

This commit lets a developer pass 'undef' to both EncodeFrom
and EncodeTo parameters, meaning "don't do it", which effectively
overrides the default encoding for both legs, "utf-8".

Note that, as per Encode's documentation, the croak check was
only added to the decode() step. This is to preserve behavior
compatibility to the from_to() function which was formerly used
and does exactly that.
Merge pull request #7 from garu/garu/encode-from-to

improving the EncodeFrom/EncodeTo API