Allowing for custom field view in addField() to replace a custom template

Instead of just allowing a custom field template, the array input view could potentially be used to render complex data structures via a custom field view. This update allows a custom view for each field if provided. By default, the base field view is used.

As a result, fieldViewTemplate can be removed and the defaultFieldViewTemplate string can be moved to the default FieldView allowing for better encapsulation.