Implement NetworkManager class and cleanup included files #9
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
The first major change in this update is to stop using the NetCommon namespace for sending and receiving data. First of all, the receive data function couldn't even receive and decrypt data if the data destination was a bytestring. This added confusion and even broke the code in the earlier stages and made me waste time debugging.
With the new NetworkManager class, you can be sure everything is initialized for each instance, which ensures safety and reduces potential of crashes. Furthermore, there was a segment in the ReceiveData for UDP, where when sending the data size, it would be converted based on the endianess before being sent, but when receiving this wasn't convert to the endianess on the host machine, resulting in a buffer being resized to an absured number (e.g 30201), this patch fixes this.
The second major change in this update is managing files including other files. I was able to bring the size of MLANG.DLL down from ~5.5k Mb to ~4.9Mb. Source files were full of unneccessary includes, and if one file didn't include something, others would break. Completely refactor this so a lot of linker errors don't arrise if something isn't included in the proper order. Also include files in cpp source files rather than header files for a faster compilation time.
Overall, improve compilation time, reduce DLL file size, improve code clarity, reduce crash potential, improve safety when loading native WinSock functions dynamically, and more.