Fix bug with Preview

The preview function had an issue with working on manuals and new specialist documents. With specialist documents, the preview would only render the body that had been saved so if you were making a new document the preview would be blank and if you were editing a document's body, the preview wouldn't render the changes you'd made. The preview function didn't work at all with manual sections.

This commit fixes the 2 preview bugs and refactors the preview code to be more reusable between different models.