Address `cat` performance and buffering issues 

I've been playing with #8

With buffering changes I've made the time of cat is now close to the native one and the time of cat -n is 40% better, but still way, way slower then native one.

PR contains some pure stylistic / vim comments patches too.