use int instead of bool for C function rt_unloadLibrary

- This should actually be ABI compatible but it's cleaner
  for documentation purpose.
make loadLibrary/unloadLibrary module-level functions

- leave deprecated aliases in Runtime
remove documentation for multiple static druntimes
use version blocks for different loadLibrary implementations

- version(CoreDdoc) use documented declarations
- version(Windows) implementation
- version(Shared) implementation when compiling shared druntime
- else use documented declarations
add high-level Library wrapper

- loadLibrary now returns a Library struct
- Library sub-types the native platform handle (alias this)
- Library.loadFunc loads a D mangled function
- Library.loadSym loads a D mangled variable
core.demangle.mangleFunc for different linkage types

- error out for extern(C++)
- preserve plain names for extern(C), extern(Pascal) and extern(Windows)
workaround Bug 8229 - CTFE strings are not zero-terminated
rewrite tests using the new API

- also test .di header usage