io: add chown

Unfortunately it's not possible to test the happy path: only superusers
can call chown.
test/io/chown: add test for uid=-1 and gid=-1
io/test/chown: add test for the happy path

Since it supposes it's running under fakeroot, it doesn't check that the
permission gets actually changed, but only that the program doesn't
crash.
test/io/chown: improve test for uid=-1 and gid=-1

Ensuring that the program doesn't crash, and also that it doesn't change
the owners of the file.
Merge pull request #341 from fsouza/chown

io: add chown

merging on behalf of @fsouza