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.
Since this is inside `@unix_only` windows stuff doesn't matter I don't think.

Bash says the potential username part is up to the first _unescaped_ slash or all (whichever comes first). So it can accept pretty much anything.

I am guessing the `:` can go away when the proper getpwnam is used. And certainly space, although unusual, would be acceptable in a username.

You might decide to document that escaped slash is not accepted, instead of making the regex more complicated :)