Tidy up of publish

- Corrected JSON output filenames
- Prettified JSON files
Tidy-up of publish functionality

- Added support for empty collections
- Added more user-friendly download filename
Changes around components

- Fixed issue caused by _componentType being an object now
- Displays component 'displayName' in UI