rpc: Initial core of an FFI interface.
cc @gabi-250 @jnewsome @richard
(Please don't merge this until we've had a chance to discuss the APIs and conventions a bit.)
This branch only covers the absolute minimal API in order to launch a connection and run simple requests, and it doesn't document anything nearly well enough. Nonetheless I think it's good enough for an initial review, to make sure that we've got the basics right (as well as a general consensus on the error handling API, naming, and so forth).