code: public static OptionalHeader newInstance(byte[] headerbytes, long offset)
  			throws IOException {
  		OptionalHeader header = new OptionalHeader(headerbytes, offset);
  		header.read();
  		return header;
  	}
docs: Creates and returns a new instance of the optional header.
  
  @param headerbytes
  the bytes that make up the optional header
  @param offset
  the file offset to the beginning of the optional header
  @return instance of the optional header
  @throws IOException
  if headerbytes can not be read