refactored to represent both storage and manifest references as URIs
implemented exhaustive tests
uses varargs more extensively to clean up path API
implemented relative URI patterns and staging tests (bagit etc..)
tests pass