Fix binary input handling regression in Kinesis

This fixes #2543. It only encodes to bytes if the input is not already
bytes. It also adds tests so that code updates will fail if we ever remove
this logic.

cc @jamesls, @kyleknap