Embox route data using UI.emboxValue...

- Caches result of inner function so that it doesn't get called over and over
- Useful when multiple yield regions use the same data function
- Prevents that data function from being run multiple times unless data value
  has actually changed.