Add acknowledgedPacketId to AcknowledgePacket definition
Add ByteArrayTools and JUnit test

These methods are useful for packing integers into byte arrays and then
unpacking them later. I've decided on big-endian, which I mentioned in
packetStructure.txt, because it's more readable when you're looking at
the raw byte data. It makes the code a little more complicated, but
ideally I shouldn't have to look at this again. If I do, I expect it'll
be because of some problem with integers being signed or something.