update .gitignore
trivial code cleanup changes
use "unknown" file type for files that are "other" instead of throwing an IllegalStateException
rethrow EOFException as ChannelEOFException

this prevents some unnecessary stack traces if the peer has vanished
prematurely