Support more transfer encodings.

Canumb now supports data to be transferred using not only
application/json, but also multipart/form-data and
application/x-www-form-urlencoded to better fit needs for
various clients. The `hash` api also supports having data
transferred as a file. This could be supported in encode/decode
APIs aswell..