make NetAddress a string

Most of the net functions operate on strings. This cleans up some
ugly patches of code concerned with converting strings to ints to
uint16s, or the inverse. This should also make the transition to
IPv6 a bit easier.
less restrictive RPCs

previously, all RPCs had to send a length-prefixed value, even if
there was no value and the length was 0. Now the duty of reading
the value has been offloaded to the handler function, where it
belonged in the first place.
network reorg
proper pong
RPC functions return a value