generate dll file name based on target os

Fix for #4119.

generate dll file name base on the given target os, using `core::os::consts` which now contains constant values for all of the supported targets.

the functions on `core::os::consts` are changed to constant strings
for example, `fn sysname() -> ~str { ~"linux" }` will be `const SYSNAME: &str = "linux"`