Beef up stat support

This pull request does 2 things:

- It enables all of the standard os stats on a file (chown, chtimes, chmod, truncate) using a standard function, setstat. Also enable similar set functions on a File type.
- It refactors the stat retrieval code to work much closer to what the core of Go actually does. This has the advantage of being able to get all the attributes via FSTAT and LSTAT instead of just the subset supported by os.FileInfo.

All changes were tested with an OpenSSH server running 6.2p2 using a separate test script. Local tests also pass. 
nit, change the receiver to be `f` or `i` maybe