Only check for updates when initialized

Otherwise there's a crash when it runs in client mode
Change client/server to link/terminal

The terminal is a local endpoint (socket).  It encapsulates all the
logic for receiving messages and tracking remote connection states.  The
(optional, maybe not really useful in practice) link is a shortcut for
sending to a particular remote.

Basically, the terminal is the useful data structure here, and it lets
you listen for incoming links or just send to a particular host or all
linked hosts.  The separate link object just gives you an easy way to
send to only one host, like for a client.

This also updates the game code to use the new API, but I didn't really
think that part through, so it may change in the near future.
Rename n3 core to raw
Fix comment
Shorten function name
Rename for clarity
Change API to require malloc'd buffers

In the future, we'll need to keep the buffers around in case we need to
send them again, and requiring the app to provide buffers we can use
directly minimizes copying and unnecessary allocations inside n3.