Move all system #includes into ncdc.h

This simplifies having to figure out which headers to include in each
file, and also removes the need to make a distinction between headers
that define structs/typedefs for data that may be passed between
multiple c files, and all other headers that are only used locally.

In the current build system, this'd probably slow down compilation time
a bit. If/when precompiled headers are used, this change will probably
improve the compilation time. Either way I doubt it's too noticable.
Add deps/ylib/yuri.[ch]
Use yuri instead of str_portsplit() + expose host/port diff out of net.c

This should ease the transition to IPv6 a bit. Not fully tested yet.
commands.c: Use yuri to parse hub addresses

Parsing addresses using a regular expression has always felt a bit
ugly...
Use separate version.h instead of -DGIT_VERSION

Backport from Globster. This change ensures that the version string will
be correct any time you type 'make' after a git commit/pull/whatever,
and only main.c has to be recompiled. Previously this would require
manual recompilation of everything.