Cherry-picking commits from master to 2.066 branch

Most of commits cherry-picked from [current master branch](https://github.com/D-Programming-Language/druntime/commit/930e0ac7979750ea597a8cead0ee0b3e32584441).

I excepted following changes:
 - https://github.com/D-Programming-Language/druntime/commit/dc06dbff5c91e73e6f31061d4303f91aef661474
   Changing API behavior is a bit risky for 2.066 release..