Combined Serializable and Deserializable into one class for simplicity.
Improved the flexibility of serialization/deserialization (details below).
Future serialization and deserialization implementations can now specify what data will be serialized/deserialized (which is represented as bit flags in a 16 bit unsigned integer).
The previous enum, Data, is now called NetData in order to allow for easy viewing of where it's been referenced.
Modified Serialize and Deserialize methods to be contained within their own class called Serialize and Deserialize.
They are now static methods as opposed to global namespace methods in order to reduce namespace pollution.
Minor bugs fixed in other classes that referenced the previously global namespace methods.