Fix some more issues

Because m_frame is a uint8_t, it will use that version of IntToHexString surely, passing in 8/4=2. Is the expense just creating the ostringstream? Would making it inline guarantee the compiler optimised it? Alternatively, what if I did a version where you could pass in a pointer to a stream (e.g. cout) like the FormatData function? Also just noticed the old code missed the zero padding bit that IntToHexString does.