IndexAIP: separate extraction code, handle uncompressed AIPs

refs #6589
StoreAIP: make sure AIP path is /-terminated

If the AIP path is not slash-terminated, then the storage service will
store the directory inside a directory of the same name.

refs #6589