Move polling to the central poll function (TCP/UDP agnostic).

It should work the same for both TCP and UDP servers. On UDP, the
server's nfds field should always be 1.
Time argument no longer necessary for child poll functions.
Implement packet listener for MIK_SAFE servers.
Have client send a connection packet over UDP when connecting.
The server should keep track of the amount of seconds each peer has
taken between packets (keep alives ought to be required).

This integer can be accounted for by appending the duration of the
poll call (actual duration, fetched tediously by gettimeofday()) if
that peer does not send either a keep alive or a real packet.
A linked list of peers is completely unneeded as long as they can be managed in a dynamic array.
Move all structures to use two sockets, one of each type.
Organize debugging. The mik_debug function can be modified in the future to write to a log file instead.
Set peer fds not to poll by default.
Don't set socket options for the DGRAM port.
Merge branch 'dualcrypt' of https://github.com/PaytonTurnage/Tubuil into dualcrypt
Add packet metadata values.
This commit strips away miknet's object implementations.

In future commits on this branch I will be implementing mikserv and mikcli
as one object, miknode. This will make sure the library does not require
programs using it to have a centralized model, which would be quite the
obstacle!

Stripping it all away at once currently makes for a convoluted commit, but
it means that the actual implementation can have meaningful ones, which I
think is more important.
Document functions in miknet.c.
Remove error checking for things the compiler will handle via enums.
Create a constructor for the miknode structure.

This constructor should handle the network-level constructions, not any of the
miknet-specific configuration.

The port is not gaurunteed. If the requested port fails it will cycle up until
it finds one it can bind to.
Configure a miknode for use.

Reserve the memory requested for storing peers and file descriptors for poll,
and initialize everything relevant.
Set up master socket to take new connections.
Create a constructor and deconstructor for the peer structure.

Peers are created over the SOCK_STREAM socket, and so that is preferred.
The array which holds all the peers of a node, node.peers, determines whether
a slot is empty or occupied by the state of the peer. MIK_CONN is active, and
MIK_DISC is an empty slot.
Remove some useless references to socket addresses.