Abort on 0-length tag value or recursive IFD

- Might be caused by an unknown DataType, or a Count of 0, but either
  way the tag is invalid
- Check for immediate recursion when decoding IFDs. The 0-length check
  above will prevent the obvious case, but it still could be possible to
  have a self-referencing directory. This doesn't check for indirect
  recursion. Maybe there should be a limit to the number of times
  DecodeDir can be called?
Add another corrupt image and test

- check for 0-length tag value