The dynlib pragma hard-coded a library path and resolved it via dlopen() at
runtime, preventing static linking and forcing a specific load-time path.
Using bare {.importc.} lets consumers choose: link liblibchat dynamically
at link time (--passL:-llibchat) or link it statically into their binary.
* Add Identity name
* Update Context to accept a name
* Change constructor in bindings
* Add name retrieval to bindings
* Update constructor string type
* Remove uneeded files
* rename functions for symmetry