Rewrote core logic for Python 3 and lower memory usage. Changed client and server classes to accept bytes instead of strings.