Learn editor

This implements support for multiple editors on /learn subpages

We should find a way to display runtime errors in the output box.  There are three things that can happen:
  - no errors:  show id and value
  - ValueError: show id, fallback value (source) and the error
  - IndexError: show id and the error