Return all fields of the body

Let JS code interpret it as message, signature, etc. For ACKs it's something
else.
We only ever got one SERVACK

Multiple HMACKs come in, but only with a patched libzephyr. See
https://github.com/davidben/zephyr/commit/105d20869624bafab6ddcf11868e51e0d6e4c3fb
Punt unused global
Use std::string for more RAII
Take a list of strings as API rather than message/signature
Rename message to notice

At least for the low-level API since this gives backs ACKs and the like.
Perhaps zephyr.js can provide something higher-level too for sanity.
Drop g_port global variable

We can just use 0 everywhere.
Remove debug statement

The ACK handling seems to work now.
Punt ZRetriveSubscriptions binding

This one will be tricky to make non-blocking and we probably don't need it.
Put everything in an anonymous namespace

namespace node_zephyr ? I guess while we're still a single file... I really
don't even know what kind of visibility these things get built with.
Move C++ code to src/

If we have multiple files, good to separate them.
Remove THROW macro

It's fairly trivial.
UpperCamelCase some functions

Meh.