rethink wrapper API (cDefine / cPlugin / cCompile )
current code:
```nim
import nimterop/cimport

cDebug()
cDisableCaching()

cDefine("FORCE")
cIncludeDir "$projpath/include"
cAddSearchDir "$projpath/include"
cCompile cSearchPath("test.c")
cImport cSearchPath "test.h"
```

## proposal
```nim
import nimterop/cimport

importForeign(
  debug = true,
  caching = false,
  defines = ["FORCE"],
  includes = ["$projpath/include"],
  searchDir = ["$projpath/include"],
  imports = ["$searchPath/test.h"], # $searchPath means use searchPath to resolve
  compiles = ["$searchPath/test.c"],
)
```
## benefits
* a single macro is used (note: cPlugin may need to remain a macro as it takes an AST (plugin code) as input)
* no need for globals
* simpler implementation, easier API for users


## links
* https://github.com/Syniurge/Calypso/blob/documentation/calypso_proposal_pragma.md (pretty related !)
* https://github.com/genotrance/nimterop/blob/master/nimterop/globals.nim
* https://github.com/genotrance/nimterop/pull/66#discussion_r251122050
> I think we need to improve the entire gState situation in the future. The global is out of control and there's only more going to get added.

* some points raised in https://github.com/genotrance/nimterop/issues/10#issue-383365419 

## migration path
* migrate these: https://github.com/search?q=nimterop