Adds support for marshalling to and from Python-specific datatypes

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.