Fix an undefined variable name

n    ->
node
Avoid deserializing an empty string which leads to EOFError

When connection is closed by remote host, Socket#recv returns an empty
string. So deserialize received data only when it is not empty.
Add test cases with DummyEngineDriver

In test cases, DummyEngineDriver creates a TCP server in another thread and runs ForwardInput on it.
To prevent ForwardInput from accessing Fluent::Engine by calling Engine.emit_streams,
DummyEngineDriver creates a dummy engine and sets Fluent::ForwardInput::Engine to it.