Separate meta (TCP) and data (UDP) sockets.

This patch changes the socket array from an array of (tcp,udp) pairs to
two arrays. This provides more flexibility as we can now manipulate
TCP and UDP sockets independently of each other.

This patch also changes the way "myport" is determined: instead of using
the value of Port, it uses the actual port that the sockets are bound
to.
Add a separate configuration option for configuring the UDP socket.

This patch adds a new configuration option, DataBindToAddress, that
specifies the address the data (UDP) socket should be bound to.
Defaults to BindToAddress if not specified.
Allow binding to any port.

This patch modifies the BindToAddress and DataBindToAddress
configuration options to allow binding to any port by specifying "*" as
the port number.

This makes a lot of sense for the data port as it can result in somewhat
better connectivity when there are multiple tinc nodes behind a single
NAT, by making source ports less likely to be rewritten.

For the meta port it's probably not very useful, but is nonetheless made
possible for consistency.