The encode and decode functions now return the value directly without being wrapped in a tuple on success. If there is an error, it is thrown. This is to more closely match the semantics of term_to_binary and binary_to_term.