formatting refactoring

- field have types that identify how they are rendered
- base output adapter for rendering/formatting the fields
- new fields for collections and labeled groups