Add extensible architecture for client <-> core communication
The first use case of this would likely be to allow the client to compile the core from source if necessary. Future extensions may include communication over a socket to a persistent CLPM server or using a single CLPM process for every request from the client instead of spawning a new one every time.