External datastream fixes

- Fedora doesn't report sizes for external datastreams even if they're present in the FOXML, so we can end up getting back zero-length files when we try to stream this kind of content. This works around that issue by including a file's length according to iRODS when returning a MIMETypedStream from IrodsExternalContentManager. This way the correct Content-Length header can be set for the browser.

- Nonexistent sizes were interpreted as zero when indexing, which caused external datastreams to appear to have a size of zero bytes in the access interface. This changes the indexing logic to interpret a missing size value as no size.

- In addition, the parsing serialization logic in Datastream was changed to be more explicit about what happens when we see blank fields.