Add ability to create a self-contained exe with MinGW
Requires adding hooks and passing control to openloco::main
Generated openloco.exe has following sections, as reported by
`objdump -h`:
```
openloco.exe: file format pei-i386
Sections:
Idx Name Size VMA LMA File off Algn
0 .loco_text 000d6000 00401000 00401000 00000600 2**2
CONTENTS, ALLOC, LOAD, CODE
1 .loco_data 00c8b000 004d7000 004d7000 000d6600 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .text 0001697c 01163000 01163000 00d61600 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
3 .data 00000064 0117a000 0117a000 00d78000 2**2
CONTENTS, ALLOC, LOAD, DATA
4 .rdata 00008278 0117b000 0117b000 00d78200 2**5
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .bss 000016f0 01184000 01184000 00000000 2**5
ALLOC
6 .edata 0000004d 01186000 01186000 00d80600 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .idata 00001f84 01187000 01187000 00d80800 2**2
CONTENTS, ALLOC, LOAD, DATA
8 .CRT 00000034 01189000 01189000 00d82800 2**2
CONTENTS, ALLOC, LOAD, DATA
9 .tls 00000020 0118a000 0118a000 00d82a00 2**2
CONTENTS, ALLOC, LOAD, DATA
10 .reloc 00000c64 0118b000 0118b000 00d82c00 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
11 .debug_aranges 000004f8 0118c000 0118c000 00d83a00 2**3
CONTENTS, READONLY, DEBUGGING
12 .debug_info 00073fd5 0118d000 0118d000 00d84000 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_abbrev 0000442d 01201000 01201000 00df8000 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_line 000056a3 01206000 01206000 00dfc600 2**0
CONTENTS, READONLY, DEBUGGING
15 .debug_frame 0000158c 0120c000 0120c000 00e01e00 2**2
CONTENTS, READONLY, DEBUGGING
16 .debug_str 00000bed 0120e000 0120e000 00e03400 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_loc 00007218 0120f000 0120f000 00e04000 2**0
CONTENTS, READONLY, DEBUGGING
18 .debug_ranges 00000500 01217000 01217000 00e0b400 2**0
CONTENTS, READONLY, DEBUGGING
```