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: { methodName: 'someRegisteredName', args: { foo: 'bar' } }
```
I feel like this functionality is pretty generic. What would you think about having it live as an individual component so that it can be reused elsewhere?