Rewrote the whole network API

Opted for a more generic and open API this time.

Already supports file sending/receiving.

Now actually working, and already has fully functional
unit tests (even for file sharing).