Cleanup watch encoding w/ RawExtension

Move standard watch encode / decode streams to use
runtime.RawExtension and embed API decoding based on
a provided codec.

@lavalamp as discussed