Updating HeaderType and things

HeaderType now stores more important information and also has some data
validation

Added some functions for checking input before packet creation

also modified rover.java, I need to figure out it's role in this or if
it is still even needed