WIP: Improve the functionality homedir and expanduser.

Following [this](https://groups.google.com/forum/#!topic/julia-users/6BTNaIp3k8g) conversation with @StefanKarpinski I made some changes to homedir() and expanduser().

The biggest issue in my eyes is that I can't make a call to libc's getpwnam since it returns a struct. My guess is that I could do something similar to stat.jl (though I don't think libuv has support for this family of functions) but I'm not good enough at C to figure out how that side of things works.

The other big issue of course is how to handle multiple users on windows (and whether or not expanduser should do anything on windows), it has been suggested that an LDAP query would be the best course of action but I'm dubious.
yes, and probably before merging. many *nix configurations don't use it, for example, OS X doesn't populate /etc/passwd :)