Removed PrimitiveArrayList because it wasn't suitable for primitive byte
arrays, which are easier to validate as they cannot have a null value.
Substituted it with the ByteArrayBuilder which can append any byte or
byte array and convert it to a primitive byte array when finished
appending.
Removed Validation and its test classes because I chose to use Oval for
Validation which also supports a AspectJ validation concept.
Added the ARP PDU with additional enumerations that specify ARP
operations and address types.
Encapsulated MAC addresses in an own class.
Added and IPv4 address class.
Added the Guarded-Annotation to the PDU classes for precondition
validation of Oval.
Added new test cases to the NSender integration test for sending a raw
ARP segment and an ARP segment encapsulated in an Ethernet frame.
Added validation test cases for some PDU classes (not all) to the aspect
project as validation only works when aspects are woven in the classes.
Modified the core/build.gradle file to compile the integration test
classes.