Support pluggable encodings for serialization

Summary:
Introduces a new `encoding` concept, which defines the serialization format of value objects written to a durable dict.  Also added `JSONEncoding` for future use.

Also fixed some PEP8 errors and added a better .arcconfig file.

Test Plan: new tests

Reviewers: NorthIsUp, kalail

Reviewed By: kalail

Differential Revision: http://phabricator.local.disqus.net/D12528