Report error when raising HTTP errors

When the requests library raises an error, there's probably some error
text in the response.  Print that in case it's useful before re-raising
the error.
Add user model and content methods

Allow calls to the HabitRPG content and content/paths API calls.
Make decoding API responses optional

Allow API calls to be made without always decoding them as JSON, since
that may be useful for debugging or for responses that aren't JSON
anyway.  Raise an error if decoding is requested and the response isn't
JSON.
Add completing tasks

Completing a daily or a todo is seemingly a case of just upping it.
Uncompleting them is just downing it.  So write code to complete and
uncomplete them.
Automatically clear the "clear tasks" task

When the number of pending tasks drops below the relevant level, clear
the task that requests clearing tasks.
Make creating tasks a class object method

Creating a task involves creating an instance of one of the Task
subclasses, so it makes sense for that to be a class method, not a
HabitRPG method.
Allow limited updating of tasks
Store number of Todos in overtasked Todo

When overtasked.py runs, it counts the number of outstanding Todos.  For
easy reference, put that number, along with the last time it was worked
out, in the notes for that Todo.
Handle text/csv API responses
Add HabitRPG.history() method

The HabitRPG.history() method calls the /export/history API, which
returns a big CSV of historical data.  I've not yet worked out what it's
for, but it's now available.
Get the right call for creating a Todo

The Todo class is in the habitrpg namespace; calling it bare doesn't
work.  The call also now needs to specify the HabitRPG instance.
Merge branch 'bug/bad-task-creation'

Conflicts:
	overtasked.py
Do imports in PEP8 style

PEP8 demands standard library imports first, then related third party
imports, and then local imports.  Do them in the right order.
Use os.path.join for portability
Allow fetching a specific task by ID
Add script for managing recurring tasks

It's pretty basic at the moment, but this script will look after
creating a new task some time after a previous task has completed.

It stores data about the tasks in YAML files in a hard-coded
subdirectory of the user's home directory; the idea being that users can
edit these as necessary, and eventually will be able to write them to
create new recurring tasks, but for the program to also be able to
update them easily.

Currently the easiest way to create a new recurring task is to use a
function available in the script; best way to access that is to import
the script in the REPL.