Refactor FedoraId to make it slightly easier to understand. Changes:
- resolve() now only adds a single child to the end of the original id's base id. The old method had extremely confusing behavior depending on whether of not the joining part was prefixed with a /.
- Added a bunch of asX() methods that can be use to create versions of the original id that reference a related "sub" resource, like a memento or binary description.