Structure

**Which issues (if any) does this change solve? (please link them here)**

This PR does not address any public issues.  It is in support of an initiative to unify the Goodie and Spice development processes. 

**Briefly describe your fix. Are there any important details we should know about?**

 In service of unifying the processes it adds:

- Structured answer returns for Goodies which enable to template-sharing between Goodies and Spice.
- Moving the `caller` attribute from ZCI::Spice to the IsControllable role, so that information is available to Goodies for simpler (Spice-like) CSS inclusion.
- A streamlined ZCI attributes check, just to make it more obvious what is happening there.

**Are you having any problems? Do you need our help with anything?**

No problems. Everything has been working well in conjunction with some nonpublic back-end changes.  Review and merge sooner rather than later will help keep those initiatives moving.
:+1: