fix MemoryStream passed to HandlerGetData containing an extra byte

When OnGetData is called, it gets passed the position of the first
byte following the packet ID, but the length it is passed is the
length of the entire packet *including* the packet ID byte. So when
the MemoryStream is constructed with that length, it actually
contains an extra byte not in the packet, whatever is next in the
buffer.

Fix this so that the MemoryStream only contains the packet itself,
without the extra byte. Also fix the existing places in TShock
which depend on the length being one bigger than it should be.