Merge branch 'release/0.8.1' into develop
This works.. that's good.
Refactoring task instance handling to support marshalling to and from
python-specific (non-JSON) datatypes while retaining backward-compatible
behavior.

* Adds 'marshal' kwarg to TaskWarriorShellout which instructs library
  to marshal TaskWarrior JSON into reasonable python datatypes.
  Note: Returned object always implements dictionary interface, and when
  when not using said kwarg, a standard dictionary (without automatic
  marshalling behavior) will be returned.
* Adds a read-only version of TaskRC parser to provide easy access to
  UDAs. (Adapted from Inthe.AM)
* Adds field classes and tests for said field classes.  These allow
  automatic marshalling data between Taskwarrior's
  sometimes-inconsistent type handling and python datatypes.
* Adds task change journaling for tasks returned when using marshalling.
  (This is not directly used in taskw, but will be useful for libraries
  utilizing this library including bugwarrior).

Minor Bugfixes:

* Removes conversion of '\n' to ' ' in taskwarrior experimental
  encoding.  Taskwarrior is capable of storing newlines.
Merge pull request #50 from coddingtonbear/change_tracking_and_coercion

Adds support for marshalling to and from Python-specific datatypes
Test composition.  (It works..)
Test string UDAs.
Test UDA dates.
Typofix.
Refactors TaskRc parser to match previous version written by @ralphbean.
Adds tests; fixes #51.
Merge pull request #52 from coddingtonbear/issue_51

Refactors TaskRc parser to match previous version written by @ralphbean.
Merge configuration overrides into taskrc configuration.
Update existing use of config overrides to match new datatstructure.
Merge pull request #53 from coddingtonbear/handle_config_overrides

Merge configuration overrides into taskrc configuration.
Raise an exception if we can't parse configuration; ignore simple config values to allow storing complex ones.
Add AnnotationArrayField for handling idiosyncrasies of annotations.
Attempt to convert incoming string into int or float.
Only attempt to change fields known to have changed if using new journaled task.
Handle none values.
Properly handle changes to annotations.
Allow comma-separated UUID field to properly handle null values.