Issue title: Using windows-rs with #![no_std]
 Issue body: Hello,
How can I use windows-rs with ``#![no_std]`? 

I've created a simple test with `main.rs` like that:

```rust
#![no_std]
#![no_main]
#![feature(asm)]
#![windows_subsystem = "console"]

mod bindings {
    38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5windows38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5include_bindings!();
}

use bindings38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5{
    windows38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5win38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5system_services38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5reateThread
};

#[no_mangle]
unsafe extern "C" fn mainCRTStartup() {}

#[panic_handler]
fn custom_panic(_info: &'_ cor38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5pani38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5PanicInfo) -> ! {
    loop {}
}
```

while `build.rs`:

```rust
fn main() {
    windows38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5uild!(
        windows38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5win38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5system_services38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5{CreateThread, Sleep}
        windows38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5win38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5windows_programming38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5loseHandle
    );
}
```

and `.cargo/config`:

```
[build]
rustflags = ["-C", "link-args=/DEBUG:NONE /PDBALTPATH:%_PDB% /ENTRY:mainCRTStartup", "-C", "target-feature=+crt-static"]
```

but `cargo build` reports some errors about creation of `windows_winmd_macros-....dll`.
 Comments: 
 Comment 0: The `windows` crate does not support `#[no_std]` currently, but it should be able to. We just need to add that functionality. 
 Comment 1: Duplicate of #427.
 Comment 2: Duplicate of #427
{'source': 'GithubIssues', 'repo_name_with_owner': 'microsoft/windows-rs', 'issue_id': 800154801, 'repo_stars': 5035.0}