Reintegrate data encoding functions into the Observer class.  Fixes #8, fixes #5.

The datapoint is encoded according to the format specified when an Observer is created.

Improve the way field names and field indexes are handled and make field_names a gettable property.

Data fields/values are now stored in OrderedDict so that we don't have to wonder about order when
doing CSV formatting.
Merge branch 'develop' of https://github.com/sdlowrey/ptrial into develop