Adds support for parsing from an io.Reader

Useful for parsing multipart form uploads, which Go does not expose as
files.

Also updates the existing code not to save a pointer to the ExifData in
the struct (where it was unused) and changes to decrement the reference
of the ExifData rather than freeing it explicitly, so that it can clean
up its own memory.