Update the code to match recent Rust changes

Following mozilla/rust@f1739b14a1346419a4598339aee32aab07e0d12e
Decodable requires an error type, which simplifies the code greatly
and does noes not require fail! and tasks anymore
more info from Travis
cosmetics on the examples