Added some packet functions, started parsing some packets and responding to error conditions

- Added almost all packet sending functions
- Checked that the packets we received are in fact TFTP valid packets
- Defined some structs which better represent the data used for clients