Don't special case directories in vn_read.

Previously vn_read always returned 0 for all VDIR vnodes, with the odd
effect, that cat(1)ing a directory neither produced an error nor
returned the directories content

POSIX doesn't prohibit implementations to return data for a read() on a
directory, and XSI suggests returing EISDIR when reading is not allowed
by the implementation.

This behaviour is in line with dragonfly, freebsd, netbsd and 4.4BSD.

XXX: some vop_read implementation might need fixing