FLUID-5371, FLUID-5361, FLUID-5368: Listener sorting and relay constraints for model relay

This pull resolves FLUID-5368 using the FLUID-5371 facility for constraining relay directions, as well as fixing FLUID-5361 support for globally ordering model listener notifications across the entire tree. However, various implementation issues have come to light during this work which imply that the model relay implementation will have to be significantly reworked before long - hopefully this can be postponed until after the 1.5 release.
This pull request is not completely ready to be merged although all tests are passing - the FLUID-5371 facility needs some dedicated tests cases of its own. This branch is for initial review by @cindyli against current work on the metadata component.