NpgsqlStream string IO updates

Add support for length-prefixed strings.
Add support for substring IO.
Clean up the string IO interface so it's a bit more intuitive (I hope).
Migrate the query re-write code use the substring IO support.
Use NpgsqlStream.CopyTo() to more efficiently copy a query buffer to the transport stream.
Remove some unused and obsolete methods from PGUtil.