Support storing DIPs via the storage service

This creates a new storage purpose, "DIP Storage", which is primarily used to store uncompressed directory DIPs.

Refs #6564
Thanks! Ran into this with #16 too; seems like they'll slightly conflict here, but it's easy to resolve.