Use stack instead of broken usage of QByteBuffer

Buffer should not be used blindly when reading Frame::HEADER_SIZE. It's error prone and adds nothing over reading to stack - and it's only 7 bytes. There are places in this class where buffer.clear() is called.

An issue that will need to be fixed is the breaking of strict-aliasing rules. That cast is clearly for unaligned int which will break on some platforms.