todoist: Reimplement provider
This is a more robust implementation, where tasks are properly stored (hey, I came up with a super cool stacking algorithm to get that right!) and properly escapes the strings before sending them through POST requests. This also reorganizes the code, adds a much valued debugging and tracing spews, and takes error management to a new level with proper error reporting, GQuarks and stuff. And to put the cherry at the top of this reimplementation cake, this make the code a little bit less redundant in many places. A few things to do still: * Figure out how to implement comments and attachments to tasks. This is a premium feature of Todoist. * Stop using Online Accounts. It is already condemneded to doom. * Properly report errors to users. This is coming up later.