Allow for overriding Field constructor via `field` option in `schema`

* Form#createField will prefer this constructor over Form.Field
* Default field options.schema to empty hash and read field option from that rather than passed in schema arg as it may be undefined
* Adds test