Encoders

Gigantic PR containing initial implementation of Encoder plugin type, and changing TcpOutput, LogOutput, and FileOutput to use Encoders instead of their own mechanisms for specifying serialized output format.