rose edit - fix info dialog for non-trivially-nested data

The info dialog for a variable or section in `rose edit` currently fails when trying to represent a variable with optional configuration information. This is because it can currently only handle trivially-nested data.

This change (primarily e616c7f) separates out the custom prettyprinting so that an arbitrary depth of nesting can be represented nicely.

A good example can be seen by looking at the `demo/rose-config-edit/demo_meta/app/09-opt` app in `rose edit`.

@matthewrmshin, please review.