Merge branch 'release/0.4.5' into develop
Add ability to specify 'end' time on task closure.

When integrating with an upstream source, a task's end attribute may
need to be retained. An 'end' kwarg may be passed into task_done(),
allowing for a custom end time. When not passed, original behaviour is
retained.

This patch introduces a change in the get_task() implementation to allow
for pass-through kwargs arguments. This changes the method semantics in
a subtle way: the method is no longer constrained to one argument;
rather, it is constrained to one *ID* argument and an arbitrary number
of other arguments.
Remove set literal for python 2.6 compatibility.
Merge pull request #13 from burnison/end_date_on_closure

Add ability to specify 'end' time on task closure.
Allow loading tasks using task export
Adjust encode task to our needs.
Add support for task add and task done.
Add task modify support
Make subprocess calls quiet
We do not need pprint
Add task_annotate method
Add TODO for checking annotations
Extract annotations passed into task_add
Add support for updating annotations
Make sure the config_filename is used for working with TW
Add task info command
get_tasks can return pending or completed items
Return first match found in completed or pending tasks
Reorganize @kostajh's original and experimental approaches into subclasses of an abstract base class.
Some docstrings.