FIX io->file('') for Win32 systems

* on Win32 systems, t\os.t was failing because "".io->file('') incorrectly returned "\"
* code change/repair was modeled after the repair for dir() in previous commit d35df9357
FIX dangling file handles in various tests

* Multiple tests were throwing 'unable to unlink' warnings (under Win32)
* Test directories/files were undeletable because IO objects were not being closed prior to attempting deletion

* Scoping braces were used to simply enable the IO auto-close functionality prior to the directory/file deletions
  - io->close() could have been easily used in some cases, but others were not as obviously repaired; so... scoping instead
Add a fix for io->file("foobar")->assert.

This is a fix for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733680 .

$ ls -l; echo foo | perl -MIO::All -e 'io("-") > io->file("./bar")->assert'; ls -l
total 0
Can't open file './bar' for output:
Is a directory at -e line 1.
total 0
drwxr-xr-x 1 abe  abe      0 Dec 30 23:51 bar/
$

The culprit appears to be that «-d ""» no longer returns true - it may be
a regression in glibc or the Linux kernel. Anyway, this commit
worksaround it, along with a test. I was able to reproduce it on very
old versions of IO::All so I don't know why it surfaced now.
v0.52
fix pod typo (discovered by Axel Beckert <abe@debian.org>)
Pass perms to mkpath in assert_dirpath
Validate UTF-8 in ->utf8
Fix minor POD niggle
Consistently use :encoding($encoding)
Don't try to test ->path by computing @path, instead use a fixed set of results
Make mkdir die if it fails
Remove broken test for ->mimetype
Fix ->binary under -utf8 import mode
Skip t/encoding.t for perls built without PerlIO::encoding
v0.53
allow testing on non-SDBM_File modules for dbm
remove mentions of the never-implemented -strict
abandon RT in favor of GitHub issues
v0.54
Change minimum perl version to 5.8.1, and thus remove dep for IO::String