Add std::os::set_errno as a counterpart to std::os::errno

This pull request adds a `std::os::set_errno` function to allow rust to manipulate the thread's `errno` value.  In my particular case, I am needing to do this when interacting with a c-library I am wrapping.

Note I don't have rust building on a Windows platform currently so have been unable to test my implementation for `[cfg(windows)]`
errno() is mostly (only?!) useful with the values in [libc::consts::os::posix88](http://doc.rust-lang.org/libc/consts/os/posix88/index.html) which are all c_int. If you don't want c_int in the stdlib then maybe the save version of errno and set_errno should be moved to libc.