Allow non-pending tasks to be modified.

This change attempts to address upstream issue #14, which would enable
taskw to modify non-pending tasks. This change allows all issues to be
deleted or updated, regardless of status.

A new, optional argument, command, has been added to the load_tasks()
method to emulate the 'command' behaviour in TaskWarrior. When
load_tasks() is invoked, the command argument specifies the desired
command to run. Three commands have been added:

      * all - include all tasks
      * pending - include pending and waiting tasks
      * completed - include completed and deleted tasks

By default, the 'all' command is used when no command is specified. This
allows for API backwards compatibility.

To keep backward compatibility of get_task(), this change introduces a
new private method, _load_task(), which is used within task_update() and
task_done(). Similar to get_task(), _load_task() returns an ID that
corresponds to a line number in the underlying data file. Because this
ID is not useful to the public API (i.e. completed tasks do not have an
ID), get_task() simply drops the ID for non-pending tasks and returns
None.

This patch also introduced pseudo-enumerations for task statuses,
data files, and commands. This allows for a certain level of indirection
not otherwise available.
Merge pull request #19 from kostajh/develop

Check if we have a string before calling replace().
Py3 support.
Merge pull request #14 from burnison/completed_task_inclusion

Allow get_task() to return non-pending tasks.
Refactor _load_tasks(). Fixes #20
Check if 'status is in task.
Don't assume that we always find a task.
If task does not have uuid, don't proceed with update
Allow for using keys being id, uuid and description (for example, search by UDA)
Minor fix to previous commit
Do not require confirmation when updating task
Fix the logic for checking what kind of key we have.
Fix _load_task for ID and UUID
Raise an alert if there is no uuid in task_update
Strip whitespace from task description
Python3 compatibility
Merge pull request #21 from kostajh/load-task-refactor

Refactor _load_tasks()
Py3.2 fix.
0.6.0
Merge branch 'release/0.6.0' into develop