For JPX decoding only read next packet after checking for byte aligning.

This patch makes the image from #5349 appear correctly, however artefacts
for the last packet seem to still be there.
This patch also optimizes some "in-checks" and adds a few header parsings.
Here's the reason: `alignToByte()` might change the `position` variable, which affects the lines at the bottom of the loop:
```
codeblock.data.push({
  data: data,
  start: offset + position,
  end: offset + position + packetItem.dataLength,
  codingpasses: packetItem.codingpasses
});
```