feat(childVisibility): System for registering nav visibility methods

This PR is against our `470-external-nav` branch

Closes #522 

This lets us register methods to be used for `visibility` and
`childVisibility` values in nav menus. Because we're now loading some
nav menus from JSON, we can't put arbitrary functions in anymore.

Now we can register new methods with `rxVisibility`, and reference them
in the nav as:

```
visibility: { 'someRegisteredName',  { foo: 'bar' } }
```
I put it here because we're required to use it for Encore. `rxVisibility` and `rxAppRoutes` are "generic" features, but I thought of `rxVisibilityPathParams` as Encore-specific.

It does do something pretty generic, but I didn't want to stuff it into `rxVisibility` by default. 

I can go either way though