Fixed GetData with row pitch when used with different element sizes

I originally fixed GetData to work with bytes, then @tomspilman changed it to work with Color, so now it's the time to make it work with different element sizes. I haven't tested it with extreme cases, like reading the 4 byte Color into a 3 byte struct.
The loop needs to account for the different size of the source (Color for example) and the target T (byte for example).
```C#
var elementSize = _format.GetSize();
var rowSize = elementSize * elementsInRow;
```
We need to read rowSize number of bytes into elements, each with a size of elementSizeInByte.