Disable export of NimMain and NimDestroyGlobals
### Summary

For dynamic library projects, Nim enforces the export of the NimMain and NimDestroyGlobals functions. In my project, the exported functions have a unified naming convention and include their own initialization and unloading functions (MyInit, MyUninit). I would prefer to initialize within my own exported functions, but Nim does not provide me with this opportunity. Therefore, I have no choice but to proceed in the following way:
```nim
{.emit: """
# Forward declaration
N_LIB_EXPORT N_CDECL(void, NimMain)(void);
N_LIB_EXPORT N_CDECL(void, NimDestroyGlobals)(void);

# Proxy method
static void CallNimMain() { NimMain(); }
static void CallNimDestroyGlobals() { NimDestroyGlobals(); }
""".}

proc CallNimMain() {.importc, cdecl.}
proc CallNimDestroyGlobals() {.importc, cdecl.}

proc MyInit() {.exportc, dynlib.} =
  CallNimMain()
  # some code...

proc MyUninit() {.exportc, dynlib.} =
  # some code...
  CallNimDestroyGlobals()
```

Of course, I have seen such declarations in the community:
```nim
proc NimMain() {.cdecl, importc.}
```
However, it doesn't work in Nim 2.2.0. The generated C code doesn't have a forward declaration for NimMain.

### Description

Give the choice of exports to the developers, and provide the opportunity to directly call NimMain and NimDestroyGlobals in the Nim code.

### Alternatives

_No response_

### Examples

_No response_

### Backwards Compatibility

_No response_

### Links

_No response_