Formtool overview configurations

This PR added support for configuring the display for the overview screen for a model. The DSL is as followed:

```
    overview: {
        canEdit: false,
        canDelete: true,
        viewAll: false,
        actions: [
            {
                action: 'url/slug',
                label: 'Custom action LA'
            }
        ],
        summary: {
            label: 'Quick overview',
            fields: {
                createdBy: {
                    label: 'Created by',
                    renderer: linz.formtools.cellRenderers.reference
                },
                modifiedBy: {
                    label: 'Modified by',
                    renderer: linz.formtools.cellRenderers.reference
                },
                dateCreated: {
                    label: 'Date created',
                    renderer: linz.formtools.cellRenderers.date
                },
                dateModified: {
                    label: 'Date modified',
                    renderer: linz.formtools.cellRenderers.date
                },
            }
        },
        body: function (record, model, callback) {
            return callback(null, '<p>This is the body...</p>')
        }
    }
```

``` overview.summary``` accepts a label, fields or renderer. When fields is provided, Linz automatically renders the specified fields, otherwise it will render the content provided by the custom summary renderer function.

```overview.body``` are not defined by default in Linz, however, you can supply a function that renders the content for the body section of the overview screen.

@smebberson this PR is ready for review.
This regex may be a little limiting? If we're using the URL widget, it will accept `http`, `https`, but also other valid URIs such as ftp, and mailto. Do we need to expand this regex a little?