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 #14 from burnison/completed_task_inclusion

Allow get_task() to return non-pending tasks.