Add temp c string allocation

As was written at [Opportunities for D](http://forum.dlang.org/thread/lphnen$1ml7$1@digitalmars.com) NG thread this is a desired direction.
Also this pull doesn't add any public API (for such proposal see [Add module for C-strings support in Phobos](http://forum.dlang.org/thread/lge8ju$2qcq$1@digitalmars.com) NG thread).

The proposed solution uses this clean syntax (in contrast to pull #2014):
```D
void setEnvironment(in char[] name, in char[] value)
{ enforce(setenv(name.tempCString(), value.tempCString(), 1) != -1); }
```

Added `std.internal.cstring` module contains ported code from [Unstandard library](http://denis-sh.bitbucket.org/unstandard/).

Also see D-Programming-Language/druntime#887.
Agreed, though 4K of stack is prohibitively low. In the age of abundant virtual memory I'm astonished that stacks do overflow so easly. 
Certainly even on 32bit 16k of stack would get us about 256K fibers, that is assuming 2G of VRAM.