Abstraction, Packet utilities, constants fixes

-Changed function names, organization, several other things to match C#
standards.
-Implemented MakePacket() in each packet type, so packets now know how
to build themselves.
-Implemented base class Packet which every other packet class inherits
from. Abstracted a few fields (ID, type, etc.) to Packet.
-Changes to Constants.cs to make FILENAMELENGTH and CHECKSUM the correct
size.
-InitializeArray added to fill a packet array with zeroes.
-Added DirectoryMetadataPacket and FileMetadataPacket class.