Partial Id Computation

This change makes computation of id and partialId values configurable, similar to how paths can be computed.
It also does a big shake up of the test specs - they now use the injector to get hold of the unit under test. This makes for less brittle tests.
Thanks